Codeforces 549C The Game Of Parity【博弈】
C语言纠错大赛的一道题,正好拿来补博弈~~
给的代码写的略奇葩。。不过还是直接在上面改了。。
题目链接:
http://codeforces.com/problemset/problem/549/C
题意:
给你n个数,两个人依次拿走一个数,最后剩下的k个数的和若为奇数,则先手赢,否则后手赢。问谁赢?
分析:
看最后依次操作:此时有k+1个数。。。
最后一次操作是先手,则
- 剩下的全为偶数,先手必输
- 剩下的全为奇数且数字个数为偶数,拿走一个后,先手赢,否则后手赢。
- 剩下的数有奇有偶,则先手在奇数偶数中随便选一个必可以使最后和为奇数,先手赢。
最后一次操作是后手,则
- 情况与先手正好相反,但是注意有奇有偶的情况,后手肯定有办法使得剩下的和为偶数,所以还是后手赢。
- 就只有剩下的全为奇数且个数也为偶数的时候,后手才会输。。。
代码:
#include<algorithm>
#include<cstdio>
using namespace std;
int n1,n2,n,k,even,odd,i,c,f;
int Solve(){
if (n==k) return odd % 2;
if (n1>n2){//s
if (n2>=odd) return 0;
if (n2<even) return 1;
return k % 2;//修改的部分
}
else{
if (n1>=even) return k % 2;//修改的部分
return 0;
}
}
int main(){
while (scanf("%d%d",&n,&k)==2){
odd=0;
even=0;
n1=(n-k+1)/2;
n2=(n-k)/2;
for (i=1;i<=n;i++){
scanf("%d",&c);
if (c % 2) odd++;
else even++;
}
f=Solve();
if (f) printf("Stannis\n");
else printf("Daenerys\n");
}
return 0;
}
Codeforces 549C The Game Of Parity【博弈】的更多相关文章
- Codeforces 549C The Game Of Parity(博弈)
The Game Of Parity Solution: 这个题只需要分类讨论就可以解决. 先分别统计奇数和偶数的个数. 然后判断谁走最后一步,如果走最后一步时候同时有偶数和奇数,那么走最后一步的赢. ...
- Codeforces 549C. The Game Of Parity[博弈论]
C. The Game Of Parity time limit per test 1 second memory limit per test 256 megabytes input standar ...
- Codeforces 549C(博弈)
C. The Game Of Parity time limit per test 1 second memory limit per test 256 megabytes input standar ...
- Codeforces 979E Kuro and Topological Parity - 动态规划 - 组合数学
题目传送门 传送点 题目大意 给定$n$个标号依次为$1, 2, \cdots, n$的点,其中一些点被染成一些颜色,剩下的点没有染色.你需要添加一些有向边并将剩下的点染色,满足有向边从编号小的一端指 ...
- Looksery Cup 2015 C. The Game Of Parity —— 博弈
题目链接:http://codeforces.com/problemset/problem/549/C C. The Game Of Parity time limit per test 1 seco ...
- Codeforces 538E Demiurges Play Again(博弈DP)
http://codeforces.com/problemset/problem/538/E 题目大意: 给出一棵树,叶子节点上都有一个值,从1-m.有两个人交替从根选择道路,先手希望到达的叶子节点尽 ...
- Codeforces 979E Kuro and Topological Parity(dp)
题面传送门 题意:有 \(n\) 个点,每个点要么被涂黑,要么被涂白,要么没有颜色. 现在你要: 给没有颜色的点图上颜色(黑色或白色) 在这 \(n\) 个点中连若干条有向边,可以不连通.但是只能从编 ...
- CodeForces 513A Game (水题,博弈)
题意:两个人有n1,n2个球,然后分别最多拿出 k1,k2个球,然后扔掉,谁先拿完谁输. 析:很简单么,每人都足够聪明,就每次扔一个好了,那么,谁的球多,谁就能赢呗,如果相等,那么第一个扔的输. 代码 ...
- Codeforces 768 E. Game of Stones 博弈DP
E. Game of Stones Sam has been teaching Jon the Game of Stones to sharpen his mind and help him de ...
随机推荐
- std::map插入已存在的key时,key对应的内容不会被更新
std::map插入已存在的key时,key对应的内容不会被更新,如果不知道这一点,可能会造成运行结果与预期的不一致 “Because element keys in a map are unique ...
- LC.exe 已退出,代码为-1 问题解决
最近一个c#工程,之前编译正常.后重装系统,安装DevExpress后,编译一直失败,并提示"4>C:\Windows\Microsoft.NET\Framework\v4.0.303 ...
- SEO 第七章
SEO第七章 网站网址链接 路径优化 网站的网址路径分为相对路径和绝对路径 绝对路径:绝对路径是完整的路径,不仅可以在站内打开,去其他地方依然可以打开. 相对路径:不是一个完整的路径,这种路径只能在站 ...
- ElasticSearch使用spring-data-elasticSearch的用法
spring-data-Elasticsearch 使用之前,必须先确定版本,elasticsearch 对版本的要求比较高. spring和elasticsearch有两种链接方式,一种是用TCP协 ...
- python struct.pack方法报错argument for 's' must be a bytes object 解决
参考 https://blog.csdn.net/weixin_38383877/article/details/81100192 在python3下使用struct模块代码 fileHead = s ...
- Visual Studio 2017部署 webStrom开发的nodejs项目
vs点击文件--新建--项目--JavaScript--Node.js--通过现有Node.js代码 wxxcx为nodejs项目根目录,然后右击整个项目--属性:1.启动目录2.默认打开的链接3.设 ...
- Vue之数据绑定
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- FastNet C++/Python 网络通信库之 协议
协议可以使用的基础数据类型: UInt8,UInt16,UInt32,UInt64Int8,Int16,Int32,Int64Float,Double,Bool,String [T] 数组,T代表元 ...
- LEFT JOIN结果集可能变大。。。。。
SELECT A.*,B.* FROM A LEFT JOIN B ON A.ID = B.ID
- 如何用 CSS 创作一个立体滑动 toggle 交互控件
效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/zjoOgX 可交互视频教程 此视 ...