zoukankan      html  css  js  c++  java
  • PAT (Advanced Level) 1032. Sharing (25)

    简单题,不过数据中好像存在有环的链表......

    #include<iostream>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    #include<cstdio>
    #include<map>
    #include<queue>
    #include<vector>
    using namespace std;
    
    const int maxn=100000+10;
    struct Node
    {
        int id;
        char c;
        int nx;
    } node[maxn];
    int add1,add2,n;
    
    int s1[maxn],s2[maxn];
    int len1=0,len2=0;
    int m[maxn];
    
    int main()
    {
        memset(m,-1,sizeof m);
        scanf("%d%d%d",&add1,&add2,&n);
        for(int i=1; i<=n; i++)
        {
            scanf("%d",&node[i].id);
            m[node[i].id]=i;
            cin>>node[i].c;
            scanf("%d",&node[i].nx);
        }
    
        for(int i=1; i<=n; i++)
        {
            if(node[i].nx==-1) continue;
            node[i].nx=m[node[i].nx];
        }
    
        memset(s1,-1,sizeof s1);
        memset(s2,-1,sizeof s2);
    
        int now=m[add1];
    
        while(1)
        {
            if(now==-1) break;
            s1[len1++]=now;
            now=node[now].nx;
        }
    
        now=m[add2];
    
        bool flag[maxn];
        memset(flag,0,sizeof flag);
    
        int fail=0;
    
        while(1)
        {
            if(now==-1) break;
            if(flag[now]==1)
            {
                fail=1;
                break;
            }
            flag[now]=1;
            s2[len2++]=now;
            now=node[now].nx;
        }
        
        if(fail==1)
        {
            printf("-1
    ");
        }
        else
        {
            len1--;
            len2--;
            while(len1>=0&&len2>=0)
            {
                if(s1[len1]==s2[len2])
                {
                    len1--;
                    len2--;
                }
                else break;
            }
            len1++;
            len2++;
    
            if(s1[len1]==-1) printf("-1
    ");
            else printf("%05d
    ",node[s1[len1]].id);
        }
        return 0;
    }
  • 相关阅读:
    jsonp 的 post
    js replace常用用法
    zindex
    x秒前
    手写jsonp
    webview 冒泡慢?
    人民币大写转阿拉伯数字
    checked
    Deadlock Troubleshooting Trace 1222
    [转]基于LUCENE实现自己的推荐引擎
  • 原文地址:https://www.cnblogs.com/zufezzt/p/5512638.html
Copyright © 2011-2022 走看看