标签:表示 ace src max div alt logs isp close
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 5 using namespace std; 6 7 const int MAXN = 50003; 8 9 int n, k, ans, d, x, y; 10 int par[MAXN], relation[MAXN];//par[x]表示x与par[x]的关系能够确定,relation[x]表示x与par[x]的关系:0表示同类,1表示par[x]吃x,2表示x吃par[x] 11 12 int getPar(int a) { 13 if(par[a] != a) { 14 int pa = getPar(par[a]); 15 relation[a] = (relation[a] + relation[par[a]]) % 3; 16 par[a] = pa; 17 } 18 return par[a]; 19 } 20 21 void merg(int d, int a, int b) { 22 int pa = getPar(a), pb = getPar(b); 23 if(pa == pb) { 24 if((relation[b] - relation[a] + 3) % 3 != d) { 25 ++ans; 26 } 27 return ; 28 } 29 par[pb] = pa; 30 relation[pb] = (relation[x] - relation[y] + d + 3) % 3; 31 } 32 33 int main() { 34 scanf("%d%d", &n, &k); 35 for(int i = 1; i <= n; ++i) { 36 par[i] = i; 37 relation[i] = 0; 38 } 39 ans = 0; 40 while(k-- > 0) { 41 scanf("%d%d%d", &d, &x, &y); 42 if(x > n || y > n || (d == 2 && x == y)) { 43 ++ans; 44 continue; 45 } 46 merg(d - 1, x, y); 47 } 48 printf("%d\n", ans); 49 return 0; 50 }
标签:表示 ace src max div alt logs isp close
原文地址:http://www.cnblogs.com/NWUACM/p/6623965.html