2019ACM山东省赛D题

传送门: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\n", 2);
31             }
32             else
33             {
34                 printf("%d\n", 1);
35             }
36         }
37     }
38     return 0;
39 }
View Code

 

posted @ 2019-05-13 16:25  swsyya  阅读(235)  评论(0编辑  收藏  举报

回到顶部