17-比赛1 C - Binary Nim (栈的游戏)
题目描述
Tweedle-Dee 和 Tweedle-Dum 正在进行一场激烈的二进制 Nim 游戏。这是你没有玩过的船
新版本,游戏包含 N 个栈,每个栈只包含 0 和 1 的元素。
就像一般的 Nim 游戏一样,两人轮流行动。玩家在一回合中,必须选择一个非空的栈,然后
从栈顶取出至少一个元素。不过,Tweedle-Dee 只能从栈顶是 0 的栈中取出元素,而 Tweedle-Dum
只能从栈顶是 1 的栈中取出元素。无法行动的玩家落败。
Suzumo 懒得等游戏结束了。给定先手玩家,请求出谁会获胜。别忘了,Tweedle-Dee 和
Tweedle-Dum 都是王者级别的玩家,他们都会采取最优策略。
输入格式
输入的第一行包含一个整数 T,代表测试数据的组数。接下来是 T 组数据。
每组数据的第一行包含一个整数 N 和一个字符串 S,分别代表栈的数量和先手玩家的名称。
接下来 N 行,每行包含一个二进制串 B,代表一个栈。串的第一个字符代表栈顶。
输出格式
对于每组数据,如果 Tweedle-Dee 获胜,则输出一行“Dee”,否则输出一行“Dum”。
数据范围
• 1 ≤ T ≤ 500
• 1 ≤ N ≤ 50
• 1 ≤ |B| ≤ 50
• B 仅包含 0 和 1
• S 只会是“Dee”或者“Dum”
输入
2
2 Dee
101
010
2 Dum
101
010
输出
Dum
Dee
=======================================================================================================================================
比赛时未解决的题目:
学长的题解:
=======================================================================================================================================
代码如下:
# include <bits/stdc++.h>
using namespace std; char name[], Stack[]; int main ()
{
int T, n;
scanf("%d", &T);
while (T--) {
scanf("%d %s", &n, name);
int num_0 = , num_1 = ;
for (int i = ; i <= n; ++i) {
scanf("%s", Stack);
int len = strlen(Stack);
for (int j = ; j < len; ++j) {
if (Stack[j] == Stack[]) {
if (Stack[] == '') ++num_0;
else ++num_1;
}
}
}
if (name[] == 'e') puts(num_0 > num_1 ? "Dee" : "Dum");
else puts(num_1 > num_0 ? "Dum" : "Dee");
}
return ;
}
17-比赛1 C - Binary Nim (栈的游戏)的更多相关文章
- 51nod1069【Nim取石子游戏】
具体看:萌新笔记之Nim取石子游戏可以这么写: #include <bits/stdc++.h> using namespace std; typedef long long LL; in ...
- 萌新笔记之Nim取石子游戏
以下笔记摘自计算机丛书组合数学,机械工业出版社. Nim取石子游戏 Nim(来自德语Nimm!,意为拿取)取石子游戏. 前言: 哇咔咔,让我们来追寻娱乐数学的组合数学起源! 游戏内容: 有两个玩家面对 ...
- 吐泡泡(2018年全国多校算法寒假训练营练习比赛(第二场)+栈模拟)+Plug-in(codeforces81A+栈模拟)
吐泡泡题目链接:https://www.nowcoder.com/acm/contest/74/A 题目: 思路: 这种题目当初卡了我很久,今天早训时遇到一个一样得题,一眼就想到用栈模拟,就又回来把这 ...
- CLRS10.1-7练习 - 用双队列实现栈
算法中心思想: 始终向非空队列进行入队操作 初始化时两个队列都为空,我们对q1进行入队操作 入栈: 只需执行其中一个队列入队操作即可, 具体操作哪一个队列,用一个标记变量标记 出栈流程图 代码实现 p ...
- [CareerCup] 17.2 Tic Tac Toe 井字棋游戏
17.2 Design an algorithm to figure out if someone has won a game oftic-tac-toe. 这道题让我们判断玩家是否能赢井字棋游戏, ...
- [CareerCup] 17.5 Game of Master Mind 猜字游戏
17.5 The Came of Master Mind is played as follows: The computer has four slots, and each slot will c ...
- Codeforces 15C Industrial Nim 简单的游戏
主题链接:点击打开链接 意甲冠军: 特定n 下列n行,每一行2的数量u v 表达v礧:u,u+1,u+2···u+v-1 问先手必胜还是后手必胜 思路: 首先依据Nim的博弈结论 把全部数都异或一下, ...
- poj2368 Buttons Nim取石子游戏
链接:http://poj.org/problem?id=2368 和前面差距还是很大啊囧 代码: k,a;main(i){,i=;i<=k/&&k%i;++i);k%i||(a ...
- HDU 2516 (Fabonacci Nim) 取石子游戏
这道题的结论就是,石子的个数为斐波那契数列某一项的时候,先手必败:否则,先手必胜. 结论很简单,但是证明却不是特别容易.找了好几篇博客,发现不一样的也就两篇,但是这两篇给的证明感觉证得不清不楚的,没看 ...
随机推荐
- git 推送代码到远程端
git init git add . git commit -m "first commit" git remote add origin "地址" git p ...
- 夜色的 cocos2d-x 开发笔记 04
本章会把游戏的基本功能结束,前面实现了子弹发射,产生敌人. 接下来我们要,检测子弹与敌人碰撞,让玩家移动,实现这个游戏的基本功能. 于是多出了这几个方法,当然还是写在.h文件里 首先实现触摸监听的方法 ...
- 数据批量删除_从页面js到后台数据库
LayUI 批量选择的 ,然后操作 batchdel: function () { var checkStatus = table.checkStatus('LAY-gridview') , ch ...
- SharePoint 和 Windows Phone 7 开发人员培训资源
该工具包包括单位数目: Windows Phone 7 发展简介 在本单元中,您将了解真实的消费信息存储在 SharePoint 中与你用 Visual Studio 写 Windows Phone ...
- ICCV 2017 Best Paper Awards
[ICCV 2017 Best Paper Awards]今年的ICCV不久前公布了Best Paper得主,來自Facebook AI Research的Mask R-CNN[1],與RetineN ...
- So you want to write a desktop app in Python
So you want to write a desktop app in Python Thomas Kluyver 2014-06-16 23:55 51 Comments Source This ...
- 如何让.NET Core应用的配置与源文件保持同步?
配置的同步涉及到两个方面:第一,对原始的配置文件实施监控并在其发生变化之后从新加载配置;第二,配置重新加载之后及时通知应用程序进而使后者能够使用最新的配置.接下来我们利用一个简单的.NET Core控 ...
- ES6相关特性(let & const)
[ecma-262/8.0]http://www.ecma-international.org/ecma-262/8.0/index.html 1.Let & const let 的三个特性: ...
- Leetcode back(215) to be continue
solution discussion https://leetcode.com/problems/kth-largest-element-in-an-array/description/ -- 21 ...
- Xcode SDK模拟器安装及安装路径
将SDK想要装的版本,将SDK包放入‘mac中的SDK安装路径’.再将Xcode模拟器重启. 再打开Xcode模拟器,就可以在菜单栏的 ‘硬件’->’设备‘->’iPhone Retina ...