题目已经保证是一个联通图,直接看有多少条多余的边。
有n个点,m条边,有m-n+1条边可以去掉。
但是,注意多出的边数有可能多于玩游戏的人数,所以当多于的时候要循环。所以用多于的边数(m-n+1)对人数取模。
/**/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int i,k,n,m,t,a,b;
char s[100010];
while(~scanf("%d",&t))
{
while(t–)
{
scanf("%d",&k);
getchar();
scanf("%s",s);
scanf("%d %d",&n,&m);
for(i=0; i<m; i++)
{
scanf("%d %d",&a,&b);
}
if(n= =m+1)
{
if(s[0]= =‘1’)
printf(“2\n”);
else
printf(“1\n”);
}
else
{
m=(m-n+1)%k;
if(s[m]= =‘1’)
printf(“2\n”);
else
printf(“1\n”);
}
}
}
return 0;
}
Game on a Graph
