【CF585-div2:D】Ticket Game(博弈)
题目地址:不放了,网页加载不出来。
题目:
Bicarp和Monocarp玩游戏,长度为n(n为偶数)的字符串,其中有偶数个?,每次选择0-9中的一个数替换?,Monocarp先开始,若最终前n/2位上数字和与后n/2位上的数字和相同,Bicarp赢,否则Monocarp赢。
解题思路:
num1,sum1记录前n/2位上的?数目和初始数字和,num2,sum2记录后n/2位上的?数目和初始数字和。
考虑何时Bicarp可以赢。
(1)sum1=sum2,那么必定num1=num2方可。
(2)sum1>sum2,为了让前后数字和相同,定有num2>num1,其中num2中的num1位上所填的数字对结果无影响,因为每次Monocarp填一个数之后Bicarp可以和他填相同的数,剩下的num2-num1个数(偶数),Bicarp可填的位数为(num2-num1)/2,且当sum1-sum2=(num2-num1)/2*9时Bicarp才会赢。(因为当sum1-sum2=(num2-num1)/2*9时,无论Monocarp填什么,Bicarp总能随后再填一个数,使得这两个数之和=9,否则Monocarp总能有办法赢)
(3)sum2>sum1和(2)同理
ac代码:
#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5+10;
char s[maxn];
int main()
{int n, num1 = 0, num2 = 0, sum1 = 0, sum2 = 0;scanf("%d", &n);scanf("%s",s+1);for(int i = 1; i <= n; i++){if(i <= n/2){if(s[i] == '?') num1++;else sum1 += s[i]-'0';}else{if(s[i] == '?') num2++;else sum2 += s[i]-'0';}}bool flag = false;if(num1 == num2 && sum1 == sum2) flag = true;else if(sum1 > sum2 && sum1 - sum2 == (num2-num1)/2*9) flag = true;else if(sum2 > sum1 && sum2 - sum1 == (num1-num2)/2*9) flag = true;if(flag) printf("Bicarp");else printf("Monocarp");return 0;
}
【CF585-div2:D】Ticket Game(博弈)相关推荐
- Ticket Game CodeForces - 1215D(博弈题,巴什博弈思维)
题意:两个人玩游戏,通过轮流填数字(0~9),若最终左右两边的和相等,后手赢,否则先手赢.起始有部分数字和空格. 官方题解: 题解翻译: 让我们把余额表示为左半部分数字和右半部分数字和的差.也让我成为 ...
- 博弈题解题思路及典例
解题思路与步骤: 首先明确,博弈是不公平游戏,跟玩家无关,只与当前所出状态有关,即状态确定,结果也就确定了. 需要明确以下几点: 所有的终结点是必败点(即若当前处于必败点,则无论下一步怎么走,都必输无 ...
- POJ1067_取石子游戏_威佐夫博弈
/* *State: 1067 Accepted 176K 16MS C++ 435B *题目大意: * 威佐夫博弈 *解题思路: * 略. */ #include <iostream> ...
- Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)
Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...
- BZOJ2275[Coci2010]HRPA——斐波那契博弈
题目描述 N个石子,A和B轮流取,A先.每个人每次最少取一个,最多不超过上一个人的个数的2倍. 取到最后一个石子的人胜出,如果A要有必胜策略,第一次他至少要取多少个. 输入 第一行给出数字N,N< ...
- 博弈最高位POJ 1704(Georgia and Bob-Nim博弈)
新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正 Georgia and Bob Time Limit: 1000MS Memory Limit: 10000K Total Su ...
- #423 Div2 D
#423 Div2 D 题意 构造一个 n 个节点的树,恰好有 k 个叶子节点 (叶子节点的定义是只与树上的某一个节点存在连边),要求任意两个叶子节点的距离的最大值最小,距离为两个节点间边的数量,输出 ...
- 2016 多校赛3 A 水 B 期望,规律 C 各种博弈 J 物理题,积分 K 暴力,水
2016 Multi-University Training Contest 3 A - Sqrt Bo 题意:给一个数 n,问n要多少次平方后化为1,如果超过5次输出"TAT". ...
- 人类偏好的“可塑性”,从博弈说起
作者 | 斯图尔特·罗素 来源 | <AI新生> 出品 | AI科技大本营 经济学家通过为人类受试者提供选择来套取他们的偏好.该技术广泛应用于产品设计.营销和交互式电子商务系统中.例如,汽 ...
- 点分治问题 ----------- P3727 曼哈顿计划E[点分治+博弈SG函数打表找规律]
题目链接 解题思路: 1.首先对于每个操作我们实际上是一个博弈问题 对于k=1的操作就是很基础的NIM游戏就是找到一条链的异或和为0 对于k=2的操作通过达打表找规律: 如果s是奇数那么偶数的SG函数 ...
最新文章
- 《深入浅出WPF》笔记——事件篇
- 如何把class里的vector结构体memcpy出来_面试官:请说出线程安全的 ArrayList 有哪些,除了Vector...
- 企业中数据中心管理者地位的逆袭
- java正则题_牛客网java编程题整理(不定期更新)
- skywalking 引起 spring-cloud-gateway 的内存溢出 skywalking的bug
- iview 可以选择当天 禁用_人脸识别刚要普及,怎么就被禁用了?|人脸识别|人脸信息|世超|rekognition...
- 解决Linux新安装的虚拟机没有网
- Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.9
- html5 游戏营销,五大H5游戏营销成功案例,你都玩过了吗?
- CQI原理及CQI指标优化
- phpstudy宝塔_宝塔和phpstudy的区别
- Linux虚拟机配置NAT模式上网时,ping不通百度等网站但能ping通局域网ip解决办法
- 100uF,10uF,100nF,10nF不同的容值,这些参数是如何确定的?
- 一颗韭菜的自我修养:用Python分析下股市,练练手
- 自己动手做个小游戏(1)
- django-q快速上手定时任务
- 精益生产的本质和应用案例
- Substance Designer 学习笔记之一 :解惑
- 垃圾收集器多标和漏标的概念
- 2006 -08-24编程经验
热门文章
- maven 配置tomcat 插件
- Python 画数学函数图像 matplotlib.pyplot
- oracle 19602,Oracle CPU Costing
- pyqt qdialog 默认按钮_QT编程的QDialog对话框右上角的问号按钮如何取消呢
- 计算机制作培训通知知识点,计算机学习计划(通用3篇)
- elementui的横向滚动_记一次element-ui配置化table组件的适应性问题(横向滚动条)...
- java 中半圆的函数,前端程序员必须掌握之三角函数在前端动画中的应用
- 配置防盗链 访问控制Directory 访问控制FilesMatch
- make编译安装_学习笔记
- Postgresql创建数据库及用户然后执行初始化脚本