Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
会不会是G++和C++对数组的初始化值不一样导致的。。。In Reply To:有没有人能帮我看一下为什么我的代码在G++下是对而C++下就WA? 我已经碰到好几次这种问题了..很是郁闷!万分感激!! Posted by:sasnzy at 2006-08-30 19:44:39 > 还有我在st[],en[],w[]和bellman()里面的局部数组变量b[]上多开了5个在G++下交又WA了 > > #include<iostream> > using namespace std; > const int inf=100000000; > > int st[200000],en[200000],w[200000],e,v,E; > char s[1000]; > > int bellman() > { > int b[1000],i,j; > bool f; > for (i=0;i<v;i++) > b[i]=inf; > b[0]=0; > for (i=1;i<v;i++) > { > f=0; > for (j=0;j<e;j++) > if (b[st[j]]+w[j]<b[en[j]]) > b[en[j]]=b[st[j]]+w[j],f=1; > if (!f) return 1; > } > return 0; > } > void readdata() > { > int i,j,a,b,l,dis; > gets(s); > e=0; > for (i=0;i<E;i++) > { > gets(s); > l=strlen(s); > if (s[0]=='P') > { > a=0,b=0,dis=0;j=2; > while (s[j]!=' ') > a=a*10+s[j++]-'0'; > j++; > while (s[j]!=' ') > b=b*10+s[j++]-'0'; > j++; > while (j<l) > dis=dis*10+s[j++]-'0'; > st[e]=a,en[e]=b,w[e]=-dis; > e++; > st[e]=b,en[e]=a,w[e]=dis; > e++; > } > else > { > a=0,b=0,j=2; > while (s[j]!=' ') > a=a*10+s[j++]-'0'; > j++; > while (j<l) > b=b*10+s[j++]-'0'; > st[e]=a,en[e]=b,w[e]=-1; > e++; > } > > } > } > int main() > { > while (scanf("%d%d",&v,&E)!=EOF) > { > readdata(); > if (bellman()) > printf("Reliable\n"); > else > printf("Unreliable\n"); > } > } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator