hdu1847 Good Luck in CET-4 Everybody!(巴什博弈)

http://acm.hdu.edu.cn/showproblem.php?pid=1847

从1开始枚举情况,找规律。1先手胜2先手胜3先手败4先手胜5先手胜...

n只要能转移到先手败,就可以实现先手胜,否则n情况下就是先手败。发现规律时%3

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 #include<cstdlib>
 6 #include<cmath>
 7 #define lson l, m, rt<<1
 8 #define rson m+1, r, rt<<1|1
 9 #define IO ios::sync_with_stdio(false);cin.tie(0);
10 #define INF 1e9
11 typedef long long ll;
12 using namespace std;
13 int t, n, m;
14 int main()
15 {
16     IO;
17     while(cin >> n){
18         if(n%3==0) cout << "Cici" << endl;
19         else cout << "Kiki" << endl;
20     }
21     return 0;
22 }

原文地址:https://www.cnblogs.com/Surprisezang/p/8886244.html

时间: 2024-11-05 23:18:44

hdu1847 Good Luck in CET-4 Everybody!(巴什博弈)的相关文章

hdu1847 Good Luck in CET-4 Everybody! ,巴什博奕,理解SG函数

hdu1847 Good Luck in CET-4 Everybody! 题意: 总共n张牌,双方轮流抓牌,每人每次抓牌的个数只能是2的幂次(即:1,2,4,8,16-),抓完牌,胜负结果也出来了:最后抓完牌的人为胜者.给出n,问先手赢还是后手赢? PS:当然这题可以直接推出 n%3==0必败,否则必胜. //巴什博奕 下面介绍另外一种做法 SG值:一个点的SG值就是一个不等于它的后继点的SG的且大于等于零的最小整数.//同mex()函数 简单点来讲就是当前状态离最近一个必败点的距离. SG(

hdu----(1847)Good Luck in CET-4 Everybody!(简单巴什博奕)

Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5328    Accepted Submission(s): 3422 Problem Description 大 学英语四级考试就要来临了,你是不是在紧张的复习?也许紧张得连短学期的ACM都没工夫练习了,反正我知道的Kiki和C

博弈论基础——巴什博弈

->可以看这<- HDU.4764.Stone \(Description\) Tang,Jiang两人轮流写数,若A在写了X,则B只能写Y,满足1<=Y-X<=k.最先写数的T只能写[1,k]内的数.第一个写的数>=N的lose,问最后的winner. \(Solution\) 看做取N-1个石子,每次最多取K个,就是个巴什博弈了 #include <cstdio> int main() { int n,k; while(scanf("%d%d&quo

hdu 2897(巴什博弈变形)

邂逅明下 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4069    Accepted Submission(s): 1872 Problem Description 当日遇到月,于是有了明.当我遇到了你,便成了侣.那天,日月相会,我见到了你.而且,大地失去了光辉,你我是否成侣?这注定是个凄美的故事.(以上是废话)小 t和所有世俗的人

HDU 2149————巴什博弈

Description 虽然不想,但是现实总归是现实,Lele始终没有逃过退学的命运,因为他没有拿到奖学金.现在等待他的,就是像FarmJohn一样的农田生涯. 要种田得有田才行,Lele听说街上正在举行一场别开生面的拍卖会,拍卖的物品正好就是一块20亩的田地.于是,Lele带上他的全部积蓄,冲往拍卖会. 后来发现,整个拍卖会只有Lele和他的死对头Yueyue. 通过打听,Lele知道这场拍卖的规则是这样的:刚开始底价为0,两个人轮流开始加价,不过每次加价的幅度要在1-N之间,当价格大于或等于

hdoj 2188 悼念512汶川大地震遇难同胞——选拔志愿者 【巴什博弈】

题意:... 策略:最简单的典型的巴什博弈. 代码: #include<stdio.h> int main() { int n, m; int t; scanf("%d", &t); while(t --){ scanf("%d%d", &n, &m); if(n%(m+1) == 0){ printf("Rabbit\n"); } else printf("Grass\n"); } } 题

hdu 2188 巴什博弈

巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规 定每次至少取一个,最多取m个.最后取光者得胜. 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个, 后取者都能够一次拿走剩余的物品,后者取胜.因此我们发现了如何取胜的法则:如果 n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品,如果后取者拿走 k(≤m)个,那么先取者再拿走m+1-k个,结果剩下(m+1)(r-1)个,以后保持这样的 取法,那么先取者肯定获胜.总

hdu 1851 尼姆+巴什博弈

先在每堆中进行巴什博弈,然后尼姆 1 #include<stdio.h> 2 int main() 3 { 4 int T; 5 int i,n; 6 int ans,m,l; 7 scanf("%d",&T); 8 while(T--) 9 { 10 scanf("%d",&n); 11 ans=0; 12 for(i=1;i<=n;i++) 13 { 14 scanf("%d%d",&m,&l

hdu 1846 Brave Game (巴什博弈 最简单的博弈水题)

Brave Game Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 6434    Accepted Submission(s): 4294 Problem Description 十年前读大学的时候,中国每年都要从国外引进一些电影大片,其中有一部电影就叫<勇敢者的游戏>(英文名称:Zathura),一直到现在,我依然对于电影中的部分

nyojb 2359 巴什博弈变形

http://acm.nyist.me/JudgeOnline/problem.php?id=2359 2359: 巴什博弈? 时间限制: 1 Sec  内存限制: 30 MB提交: 237  解决: 43[提交][状态][讨论版] 题目描述 有n个石子,有两人轮流从中取石子,最少a个最多b个,谁没得取(即当轮到他取是已经没有石子可以取了,也就是说此时石子数量小于a)谁赢,现在,LLM先取,问你LLM能赢吗 输入 每个测试样例少于100000组测试数据 每组测试样例第一行三个整数n,a,b 1<