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 |
Re:Help...实在想不出哪WR了...3X了In Reply To:Help...实在想不出哪WR了...3X了 Posted by:Bter at 2006-04-15 23:40:21 #include <iostream.h> #include <string.h> void main () { int a[101][101], set[101]; int t, p, i, j; cin >> p >> t; memset(a, 0, sizeof(a)); while (cin >> i >> j) { a[i][j] = 1; a[i][0] ++; } int tot = 0; int num = 0; memset(set, 0, sizeof(set)); //集合 for (i = 1; i <= p; i ++) if (set[i] == 0) { ++ tot; //集合标号 set[i] = tot; for (j = i + 1; j <= p; j ++) if (a[i][0] == a[j][0]) { ~~~~~~~~~~~~~~~把这个if去掉 因为可能有人听到多次1棵树(假设为树1),而另外一个人听到不同次数的1棵树(假设也是树1) 那么这两个人就应该是听到一样的(虽然次数不同),故去之 bool flag = true; for (int k = 1; k <= t; k ++) if (a[i][k] != a[j][k]) { flag = false; break; } if (flag) { set[j] = set[i]; num ++; } } } cout << tot << endl; // cout << p - num << endl; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator