传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4116
2019ACM山东省赛D题:
比赛的时候一直卡在了C题,当时看榜排名在我们前面的有人D题错了好多遍,就自主放弃了这道题QAQ,今天一看这道题分明很简单啊!!!还是不能盲目跟榜啊QAQ
题解:n个顶点,至少要有n-1条边才能使它们连在一起;所以只要算出只有(n-1)条边时是谁去移走一条边,他对应的队是哪个队,那么它的对手队就赢了~
AC代码如下:
1 /* */ 2 # include <stdio.h> 3 int main() 4 { 5 long long int T, n, m, u, v, t, k, i; 6 int s[110000], f; 7 char ss[110000]; 8 while( ~ scanf("%d", &T) ) 9 { 10 while( T-- ) 11 { 12 scanf("%lld", &k); 13 getchar(); 14 gets(ss); 15 for( i=0; i<k; i++) 16 { 17 s[i+1] = ss[i]-'0'; 18 } 19 scanf("%lld %lld", &n, &m); 20 for( i=0; i<m; i++) 21 { 22 scanf("%d %d", &u, &v); 23 } 24 t = m - (n - 1); 25 t = t % k; 26 t = t + 1; 27 f = s[t]; 28 if( f==1 ) 29 { 30 printf("%d ", 2); 31 } 32 else 33 { 34 printf("%d ", 1); 35 } 36 } 37 } 38 return 0; 39 }