POJ 1776 竞赛图的哈密尔顿回路(二)

2014-11-24 11:19:09 · 作者: · 浏览: 1
pen("data.in","r",stdin); //freopen("data.out","w",stdout); while(cin>>n){ memset(pic,0,sizeof(pic)); string str; getline(cin,str); for(int i=1;i<=n;i++){ getline(cin,str); for(int j=1;j<=n;j++) pic[i][j]=str[(j-1)*2]-'0'; } memset(next,0,sizeof(next)); int head=1,t; for(int k=2;k<=n;k++){ bool flag=0; for(int i=head;i;i=next[i]) if(pic[k][i]){ if(i==head)head=k; else next[t]=k; next[k]=i; flag=1;break; } else t=i; if(!flag)next[t]=k; } cout<<1<