九度1468

来源:互联网 发布:安卓高清电视直播软件 编辑:程序博客网 时间:2024/06/05 17:55
////  main.cpp//  shearing////  Created on 2017/6/26.#include <iostream>#include<cstdio> #include<iomanip>using namespace std;struct Node{    int Next;    char Wd;};int main() {    Node data[100001];    int w1=0,w2=0;    long N = 0;    while(cin>>w1>>w2>>N)    {        int tag1=w1,tag2=w2,l1=1,l2=1;        int position=0;        for(int i = 0;i<N;++i)        {                        cin>>position;            cin>>data[position].Wd>>data[position].Next;        }                while(data[tag1].Next!=-1)        {            tag1=data[tag1].Next;            ++l1;        }        while(data[tag2].Next!=-1)        {            tag2=data[tag2].Next;            ++l2;        }        if(l1>l2)        {            for(int i = 0;i<(l1-l2);++i)            {                w1=data[w1].Next;            }        }        else if(l2>l1)        {            for(int i = 0;i<(l2-l1);++i)            {                w2=data[w2].Next;            }        }        while(data[w1].Next!=data[w2].Next)        {            w1=data[w1].Next;            w2=data[w2].Next;        }        if(data[w1].Next!=-1)        cout<<setfill('0')<<setw(5)<<data[w1].Next<<endl;        //printf("%05d\n",data[w1].Next);        else            cout<<-1<<endl;    }            return 0;}//*/

一开始有两个地方没注意到:1.计算复杂度,一开始用的O(n^2)的方法;2.输出结果要用0补齐成5位.
原创粉丝点击