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 |
为什么正确的代码用codeblocks运行出错误的结果啊。VC不会。?#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <cstdlib> #include <string> #include <vector> #include <map> #include <set> #include <list> #include <queue> #include <stack> #include <time.h> #include <functional> #include <cctype> #include <utility> #include <numeric> #include <iomanip> #include <sstream> #define Mod 1000000007 #define INT 2147483647 #define pi acos(-1.0) #define eps 1e16 #define lll __int64 #define ll long long using namespace std; #define N 207 int mp[N][N],n; int power(int k) { int i; int res = 1; for(i=0;i<k;i++) { res *= 2; } return res; } void floyd() { int i,j,k; for(k=1;k<=n;k++) { for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { mp[i][j] = mp[i][j] | (mp[i][k] & mp[k][j]); } } } } int main() { int i,j; int u,v; char ss[28]; while(scanf("%d",&n)!=EOF && n) { for(i=0;i<=N;i++) { for(j=0;j<=N;j++) mp[i][j] = 0; } while(1) { scanf("%d%d",&u,&v); if(u == 0 && v == 0) break; scanf("%s",ss); int len = strlen(ss); sort(ss,ss+len); int sum = 0; for(i=0;i<len;i++) { sum += power(ss[i]-'a'); } mp[u][v] = sum; } floyd(); while(1) { scanf("%d%d",&u,&v); if(u == 0 && v == 0) break; if(mp[u][v] == 0) puts("-"); else { vector<int> vi; int tmp = mp[u][v]; while(tmp) { vi.push_back(tmp%2); tmp /= 2; } int siz = vi.size(); for(i=0;i<siz;i++) { if(vi[i] == 1) printf("%c",'a'+i); } printf("\n"); } } printf("\n"); } return 0; } 这是正确代码,大家可以用codeblocks试试样例数据,运行出错的东西了。 Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator