uva 1500 - Alice and Bob(论证)
题目大意:在黑板上又一个序列,每次操作能够选择一个数减1,或者是合并两个数,一个数被减至1则自己主动消除,不能操作者输。
解题思路:结论,对于大于1的数能够看成是一个整数s,为消除他们的总操作步数,包含减1以及合并。c为列中1的个数,假设s>2的话,c或者是s为奇数则为必胜,否则必败。若s≤2的话(s=2或者s=0)是。推断c是否为3的倍数,是的话必败,不是的话必胜。
证明:s>2时。s和c均为偶数是为必败态。
s为奇数,c为偶数:先手操作,将s减1。转移至必败态。
s为偶数。c为奇数:先手操作,将一个1减1,则c会降低1,转移至必败态。
s为奇数,c为奇数:将一个1和s中的一个数合并。
转移至必败态。
s为偶数。c为偶数:s减1。则s为奇数c为偶数,必胜态。c减1,则s为偶数c为奇数。必胜态;合并1和非1数,s奇数c奇数,必胜态;
s==0或者s==2时,当c%3==0时,为必败态。
c%3==1时,将一个1减1,c%3==0,转移至必败态。
c%3==2时,对于s==0,合并两个1,则变为s+2,c-2。此时假设s==0,则变为s==2时。c%3==0的必败态。对于s==2。将s减1,则变为s变为1,于是1的个数又添加1,所以c%3==0,必败态。
c%3==0时。减掉一个1即为必胜态。
/******************
 * c为1的个数,s为其它非1的总步数,包含合并。
 * s > 2时,c若为奇数则必胜。为偶数则s为奇数时必胜;
 * s == 2 || s == 0时。c不为3的倍数时必胜
******************/
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n, c, s, x;
void init () {
    c = s = 0;
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &x);
        if (x == 1)
            c++;
        else if (x > 1)
            s += (x + 1);
    }
    if (s)
        s--;
}
bool judge () {
    if (s > 2)
        return (c&1) || (s&1);
    if (s == 0)
        return c % 3;
    return c % 3;
}
int main () {
    int cas;
    scanf("%d", &cas);
    for (int k = 1; k <= cas; k++) {
        init();
        printf("Case #%d: %s\n", k, judge() ?
"Alice" : "Bob");
    }
    return 0;
}
版权声明:本文博主原创文章。博客,未经同意不得转载。
uva 1500 - Alice and Bob(论证)的更多相关文章
- UVA 1484 - Alice and Bob's Trip(树形DP)
		
题目链接:1484 - Alice and Bob's Trip 题意:BOB和ALICE这对狗男女在一颗树上走,BOB先走,BOB要尽量使得总路径权和大,ALICE要小,可是有个条件,就是路径权值总 ...
 - 2016中国大学生程序设计竞赛 - 网络选拔赛 J. Alice and Bob
		
Alice and Bob Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) ...
 - bzoj4730: Alice和Bob又在玩游戏
		
Description Alice和Bob在玩游戏.有n个节点,m条边(0<=m<=n-1),构成若干棵有根树,每棵树的根节点是该连通块内编号最 小的点.Alice和Bob轮流操作,每回合 ...
 - Alice and Bob(2013年山东省第四届ACM大学生程序设计竞赛)
		
Alice and Bob Time Limit: 1000ms Memory limit: 65536K 题目描述 Alice and Bob like playing games very m ...
 - sdutoj 2608 Alice and Bob
		
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2608 Alice and Bob Time L ...
 - hdu 4268 Alice and Bob
		
Alice and Bob Time Limit : 10000/5000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Tota ...
 - 2014 Super Training #6 A Alice and Bob --SG函数
		
原题: ZOJ 3666 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3666 博弈问题. 题意:给你1~N个位置,N是最 ...
 - ACdream 1112 Alice and Bob(素筛+博弈SG函数)
		
Alice and Bob Time Limit:3000MS Memory Limit:128000KB 64bit IO Format:%lld & %llu Submit ...
 - 位运算 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 ...
 
随机推荐
- 安卓的sqlite增删改
			
基于安卓的sqlite增删改,笔记学习: 1.使用LinearLayout 布局生成,增删改的页面如图 代码布局如下: <LinearLayout xmlns:android="htt ...
 - 树莓派安装 dig命令
			
apt-get install dnsutils
 - 找呀志_java网络编程(5)TCP和udp差额
			
1.TCP定向链接,尽管该网络的不稳定性质,所述不安全确定多少次握手不能保证连接的可靠性.但TCP的三次握手至少(事实上确保了相当大的程度)以确保连接的可靠性; 和UDP不面向连接的,UDP前传送的数 ...
 - oracle 12c 三学习 pdb 可插拔测试
			
DECLARE l_result BOOLEAN; BEGIN l_result := DBMS_PDB.check_plug_compatibility( pdb_descr_file => ...
 - 乐在其中设计模式(C#) - 组合模式(Composite Pattern)
			
原文:乐在其中设计模式(C#) - 组合模式(Composite Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 组合模式(Composite Pattern) 作者:weba ...
 - 皮尔逊相似度计算的例子(R语言)
			
编译最近的协同过滤算法皮尔逊相似度计算.下顺便研究R简单使用的语言.概率统计知识. 一.概率论和统计学概念复习 1)期望值(Expected Value) 由于这里每一个数都是等概率的.所以就当做是数 ...
 - js字的数目的计算方法(与word计算公式为)
			
[背景] 用户往往需要一定数量的单词填写必填字段限制,但js由value.length取出来的往往差异很大,与实际的话.通常真正的用户抱怨.很显然,我没有写那么多字,但系统提示超过字数限制.然后,我学 ...
 - ABP-N层架构
			
ABP理论学习之N层架构 返回总目录 自从写这个系列博客之后,发现很多园友还是希望有个直接运行的demo,其实在github上就有官方的demo,我直接把这demo的链接放到这里吧,另外,我分析, ...
 - 解决IIS7中出现An error occurred on the server when processing the URL错误提示的方法
			
在IIS7上配置一个asp程序,出现了一个错如提示: An error occurred on the server when processing the URL. Please contact t ...
 - 第十七章——配置SQLServer(1)——为SQLServer配置更多的处理器
			
原文:第十七章--配置SQLServer(1)--为SQLServer配置更多的处理器 前言: SQLServer提供了一个系统存储过程,SP_Configure,可以帮助你管理实例级别的配置.微软建 ...