ZJNU 2226 - B.T.B.F

Posted stelayuri

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZJNU 2226 - B.T.B.F相关的知识,希望对你有一定的参考价值。

d为1代表Alice执刀,-1代表Bob执刀
记录蛋糕数字为奇数和偶数各自的数量,先看偶数块

如果为偶数的蛋糕为奇数块,则为偶数的蛋糕切完后是Bob持刀,Alice会多吃1,此时要将奇数块蛋糕-1(假设此时有为奇数的蛋糕,如果没有根据题意依然是Alice赢)

如果为奇数的蛋糕为奇数块,两人每次切时对方都会多1,,中和后即对2取余,若取余结果为0说明两人在这一部分吃的一样多,否则Alice会多持刀一次,Bob会多吃1

最后,如果Bob吃得多,Bob赢,反之(包括平局),Alice赢
且若有蛋糕数字为1时,这是“不能切的蛋糕”,不算入计数

 1 #include<stdio.h>
 2 int main(){
 3     int T,t,n,i,d,d0,d1,s;
 4     while(scanf("%d",&T)!=EOF)
 5         for(t=0;t<T;t++){
 6             scanf("%d",&n);
 7             s=d0=d1=0;
 8             for(i=0;i<n;i++){
 9                 scanf("%d",&d);
10                 if(d==1)
11                     continue;
12                 if(d%2)
13                     d1++;
14                 else
15                     d0++;
16             }
17             if(d0%2&&d0>0)//如果为偶数的蛋糕为奇数块,Alice会吃得多
18                 d1--,s++;
19             if(d1%2&&d1>0)//如果为奇数的蛋糕为奇数块,Bob会吃得多
20                 s--;
21             if(s<0)
22                 printf("Bob
");
23             else
24                 printf("Alice
");
25         }
26     
27     return 0;
28 }

 

以上是关于ZJNU 2226 - B.T.B.F的主要内容,如果未能解决你的问题,请参考以下文章

[欧拉函数] Bzoj P2226 LCMSum

zjnu(1181)——石子合并

HDU - 3047 Zjnu Stadium

Zjnu Stadium(加权并查集)

HDU3047-Zjnu Stadium-带权并查集

ZJNU 1528 - War--高级