• 【PAT甲级】1097 Deduplication on a Linked List (25 分)


    题意:

    输入一个地址和一个正整数N(<=100000),接着输入N行每行包括一个五位数的地址和一个结点的值以及下一个结点的地址。输出除去具有相同绝对值的结点的链表以及被除去的链表(由被除去的结点组成的链表)。

    AAAAAccepted code:

     1 #define HAVE_STRUCT_TIMESPEC
     2 #include<bits/stdc++.h>
     3 using namespace std;
     4 int nex[100007],val[100007];
     5 vector<pair<int,int> >ans,ans2;
     6 int vis[100007];
     7 int main(){
     8     //ios::sync_with_stdio(false);
     9     //cin.tie(NULL);
    10     //cout.tie(NULL);
    11     int s,n;
    12     cin>>s>>n;
    13     for(int i=1;i<=n;++i){
    14         int x,y,z;
    15         cin>>x>>y>>z;
    16         nex[x]=z;
    17         val[x]=y;
    18     }
    19     while(s!=-1){
    20         if(vis[abs(val[s])]){
    21             ans2.push_back({s,val[s]});
    22             s=nex[s];
    23             continue;
    24         }
    25         ans.push_back({s,val[s]});
    26         vis[abs(val[s])]=1;
    27         s=nex[s];
    28     }
    29     for(int i=0;i<ans.size();++i){
    30         printf("%05d %d ",ans[i].first,ans[i].second);
    31         if(i<ans.size()-1)
    32             printf("%05d
    ",ans[i+1].first);
    33         else
    34             printf("-1
    ");
    35     }
    36     for(int i=0;i<ans2.size();++i){
    37         printf("%05d %d ",ans2[i].first,ans2[i].second);
    38         if(i<ans2.size()-1)
    39             printf("%05d
    ",ans2[i+1].first);
    40         else
    41             printf("-1
    ");
    42     }
    43     return 0;
    44 }
    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    web.xml中load-on-startup的作用
    Spring加载resource时classpath*:与classpath:的区别
    免费svn远程仓库推荐
    学习websocket
    eclipse下的maven
    maven常用命令
    文件操作的补充
    模块
    正则表达式,计算器,装饰器,冒泡排序,用户登录系统
    拷贝,集合,函数,enumerate,内置函数
  • 原文地址:https://www.cnblogs.com/ldudxy/p/11963843.html
Copyright © 2020-2023  润新知