lyt9469 2010-05-05 22:00:00
点我顶贴
收藏
删除
各位大牛,帮忙看看,错在哪里了,竟然超时了9个点,好郁闷啊~~
拜托拜托了!!
状态: Unaccepted
测评机: Xeost[5]
得分: 10分
提交日期: 2010-5-6 12:54:00
有效耗时: 484毫秒
测试结果1: 通过本测试点|有效耗时484ms
测试结果2: 选手程序运行超过时限
测试结果3: 输出过长|用户输出数据超过标准输出两倍[标准输出1位|选手输出4位]
测试结果4: 选手程序运行超过时限
测试结果5: 输出过长|用户输出数据超过标准输出两倍[标准输出1位|选手输出4位]
测试结果6: 选手程序运行超过时限
测试结果7: 选手程序运行超过时限
测试结果8: 选手程序运行超过时限
测试结果9: 选手程序运行超过时限
测试结果10: 选手程序运行超过时限
#include<iostream>
using namespace std;
int main()
{
int i,j,k,n,x,y;
cin>>n;
int *father=new int[n+1];
bool *visit=new bool[n+1];
for(i=1;i<=n;i++) {father[i]=i;visit[i]=0;}
for(i=1;i<=n-1;i++)
{
cin>>x>>y;
father[y]=x;/*y的父亲是x*/
}
cin>>x>>y;
while(x!=father[x]) {visit[x]=1;x=father[x];} visit[x]=1;/*x不是根,往上找父亲,这样结束后,与x有关的点都被访问过了*/
while(!visit[y]) y=father[y];
cout<<y<<endl;
return 0;
}