1032. Sharing (25)

来源:互联网 发布:淘宝csv导入怎么开发 编辑:程序博客网 时间:2024/05/22 11:26

点击打开链接


这次用map来存放节点,first是其地址,second是no里面有访问次数visit和next

开始将vist都置为0,然后按照第一个开始的节点地址开始访问,用map中的find找下一节点,使其visit++,直到结束,结束的标志就是iteratoe找不到为止,而不是next为-1

再按照第二个地址开始访问,如果其visit为1表示已经访问过,则该节点为common

但是有1点没过!!!!

#include <stdio.h>#include <map>using namespace std;struct no{int next;int visit;};map<int,no> mp;int main(){freopen("in.txt","r",stdin);int s,e,n;while(scanf("%d %d %d",&s,&e,&n)!=EOF){for(int i=0;i<n;i++){int a,b;char c;scanf("%d %c %d",&a,&c,&b);no tmp;tmp.next=b;tmp.visit=0;mp[a]=tmp;}map<int,no>::iterator it=mp.find(s);while(it!=mp.end()){it->second.visit++;it=mp.find(it->second.next);}it=mp.find(e);int ans=-1;while(it!=mp.end()){if(it->second.visit==1){ans=it->first;break;}else{it->second.visit++;it=mp.find(it->second.next);}}if(ans==-1){printf("-1\n");}else{printf("%d\n",ans);}}return 0;}


0 0
原创粉丝点击