类似于石子合并的游戏,在黑板上写下N个数,每次只能将其中的一个数减1(结果为0自动消去),或者将某两个数消去,将其和写在黑板上。

Alice先手,彼此都采用最优策略,将最后一个数消去者获胜。

思路:设s为石子总数,n为总堆数,分3种情况:

(1).全1 :如果n能被3整除,先手败,否则先手胜。

(2).有一个2,其余为1:如果n除以3余数为1,先手败,否则先手胜。

(3)其他情况:

a)1的个数为奇数,先手胜。

b)1的个数为偶数,且s+n-1为奇数,先手胜。

c)1的个数为偶数,且s+n-1为偶数,先手败。

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
const int MAXN = +;
int a[MAXN]; int main()
{
int t,n,num1,num2;
long long sum;
scanf("%d",&t);
for(int cnt = ; cnt <= t; cnt++)
{
scanf("%d",&n);
sum = ; num1 = ; num2 = ;
for(int i = ; i < n; i++)
{
scanf("%d",&a[i]);
if(a[i] == ) num1++;
else if(a[i] == ) num2++;
sum += a[i];
}
if(num1 == n)
{
if(n% == ) printf("Case #%d: Bob\n",cnt);
else printf("Case #%d: Alice\n",cnt);
}
else if(num2 == &&num1 + num2 == n)
{
if(n% == ) printf("Case #%d: Bob\n",cnt);
else printf("Case #%d: Alice\n",cnt);
}
else
{
if(num1% == ) printf("Case #%d: Alice\n",cnt);
else
{
if((sum + n -)% == ) printf("Case #%d: Alice\n",cnt);
else printf("Case #%d: Bob\n",cnt);
}
}
}
system("pause");
return ;
}

Alice and Bob的更多相关文章

  1. 2016中国大学生程序设计竞赛 - 网络选拔赛 J. Alice and Bob

    Alice and Bob Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

  2. bzoj4730: Alice和Bob又在玩游戏

    Description Alice和Bob在玩游戏.有n个节点,m条边(0<=m<=n-1),构成若干棵有根树,每棵树的根节点是该连通块内编号最 小的点.Alice和Bob轮流操作,每回合 ...

  3. Alice and Bob(2013年山东省第四届ACM大学生程序设计竞赛)

    Alice and Bob Time Limit: 1000ms   Memory limit: 65536K 题目描述 Alice and Bob like playing games very m ...

  4. sdutoj 2608 Alice and Bob

    http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2608 Alice and Bob Time L ...

  5. hdu 4268 Alice and Bob

    Alice and Bob Time Limit : 10000/5000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Tota ...

  6. 2014 Super Training #6 A Alice and Bob --SG函数

    原题: ZOJ 3666 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3666 博弈问题. 题意:给你1~N个位置,N是最 ...

  7. ACdream 1112 Alice and Bob(素筛+博弈SG函数)

    Alice and Bob Time Limit:3000MS     Memory Limit:128000KB     64bit IO Format:%lld & %llu Submit ...

  8. 位运算 2013年山东省赛 F Alice and Bob

    题目传送门 /* 题意: 求(a0*x^(2^0)+1) * (a1 * x^(2^1)+1)*.......*(an-1 * x^(2^(n-1))+1) 式子中,x的p次方的系数 二进制位运算:p ...

  9. SDUT 2608:Alice and Bob

    Alice and Bob Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 Alice and Bob like playing ...

  10. Alice and Bob(贪心HDU 4268)

    Alice and Bob Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...

随机推荐

  1. 让DIV实现抖动效果!

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  2. jq 判断输入数字

    jq 判断输入数字 <input   id="N_source" name="N_source"   type="text" valu ...

  3. [Js]面向对象的拖拽

    <html xmlns="http://www.w3.org/1999/xhtml"><head><style>#div1 {width:100 ...

  4. C#生成唯一的ID保存到数据库

    直接用.NET Framework 提供的 Guid() 函数: Guid.NewGuid()是指生成唯一码的规则 System.Guid.NewGuid().ToString()全球唯一标识符 (G ...

  5. load image

    <img data-src="/path/to/image.jpg" alt="">img { opacity: 1; transition: op ...

  6. C语言基础--switch

    switch格式: switch (条件表达式) { case 整数: // case可以有一个或多个 语句; break; case 整数: 语句; break; default: 语句; brea ...

  7. Android listview 制作表格样式+由下往上动画弹出效果实现

    效果是这样的:点击按下弹出表格的按钮,会由下往上弹出右边的列表,按下返回按钮就由上往下退出界面. 布局文件: activity_main.xml <RelativeLayout xmlns:an ...

  8. Dom事件初步了解

    1.事件流 事件流可以分为两种:事件冒泡和事件捕获 1. 事件冒泡就是从目标元素一直冒泡到根元素html(IE和DOM浏览器都有) 2. 事件捕获就是从根元素到目标元素(DOM浏览器支持) 2.事件处 ...

  9. JavaScript 之 走马灯

    1.原理分析:首先截取字符串的最后一位用Last表示,再截取剩余字符串用Rest表示,拼接字符串Last + Rest, 此事字符串是不会动的,还需要一个函数setInterval(javascrip ...

  10. UVa 11020 Efficient Solutions(平衡二叉树/multiset )

    题意:有n个人,每个人有x.y两个属性,每次输入一个人(x,y).如果当前不存在一个人(x`,y`)的属性满足x`<=x,y`<y或者x`<x,y`<=y,就说这个人是有优势的 ...