题目1468:Sharing
涉及到地址和值的问题,就是用Hash存储思想优化。
/**************************************************************
Problem: 1468
Language: C++
Result: Accepted
Time:190 ms
Memory:1800 kb
****************************************************************/
#include <stdio.h>
#include<string.h>
const int MAX=100010;
int hash[MAX];
int mark[MAX];
int main()
{
int a,b,c,d,n,i;
char e;
//freopen("G:\\in.txt","r",stdin);
while(scanf("%d%d%d",&a,&b,&n)!=EOF){
int start1=a;
int start2=b;
for(i=0;i<n;i++){
scanf("%d %c %d",&c,&e,&d);
hash[c]=d;
}
for(i=0;i<MAX;i++)
mark[i]=0;
int id1=start1,id2=start2;
while(id1!=-1){
mark[id1]=1;
id1=hash[id1];
}
while(id2!=-1){
if(mark[id2]==1){
printf("%05d\n",id2);
break;
}
else
id2=hash[id2];
}
if(id2==-1)
printf("-1\n");
}
return 0;
}



被折叠的 条评论
为什么被折叠?



