1032. Sharing (25)
2015-02-02 16:04
323 查看
点击打开链接
这次用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;
}
这次用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;
}
相关文章推荐
- 1032. Sharing (25)
- PAT 1032. Sharing (25)
- 【PAT】1032. Sharing (25)
- 浙大2012上机 PAT 1032. Sharing (25)
- 1032. Sharing (25)
- 1032. Sharing (25)【链表】——PAT (Advanced Level) Practise
- 1032. Sharing (25)
- 1032. Sharing (25)
- PAT:1032. Sharing (25)
- 1032. Sharing (25)
- PAT甲级1032. Sharing (25)
- 1032. Sharing (25)
- 1032. Sharing (25)-PAT甲级真题
- 1032. Sharing (25) PAT
- 1032. Sharing (25)
- PAT 1032. Sharing (25) 链表和栈的运用, 字符的读取
- 1032. Sharing (25)
- 1032. Sharing (25)
- 1032. Sharing (25)
- pat 1032. Sharing (25)