Codeforces 1215D. Ticket Game
博弈,发现情况有点多,分析一下把有用的状态提取出来
显然各个位置的数字是没用的,我们只要知道两边的数字和分别是多少
并且状态显然和左右两边的 "?" 数量有关
因为最终我们只在意左右是否相等,即差值是否为 $0$
所以两边的数字和分别是多少也不必要,我们只要知道两边数字的差即可
再分析一下,对于当前某种两边都有 "?" 的情况,先手走了对他最优的决策,使数字差往对他有利的方向发展
后手显然可以在另一边做同样的决策,使得数字差又变回来,即后手可以抵消先手的决策
所以两边的 "?" 可以互相抵消,我们只要考虑剩下一边有 "?" 的情况
如果此时 "?" 数量刚好为 $0$,直接根据差值即可判断胜负
否则
此时如果 "?" 数量除以 $2$ ,即先手可以填的位置数量,乘以 $9$ 即先手全填 $9$ 得到的值大于另一边,那么最终差值不可能相等,先手全填 $9$ 即可保证胜利
或者如果 "?" 数量除以 $2$ ,即后手可以填的位置数量,乘以 $9$ 即后手全填 $9$ 得到的值小于另一边,那么最终差值不可能相等,先手全填 $0$ 即可稳赢
只有当 "?" 数量除以 $2$ 乘以 $9$ 以后值刚好等于另一边,那么后手稳赢,因为后手只要填 $9-先手填的数值$ 即可
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
typedef long long ll;
inline int read()
{
int x=,f=; char ch=getchar();
while(ch<''||ch>'') { if(ch=='-') f=-; ch=getchar(); }
while(ch>=''&&ch<='') { x=(x<<)+(x<<)+(ch^); ch=getchar(); }
return x*f;
}
const int N=4e5+;
int n;
char s[N];
int main()
{
n=read(); scanf("%s",s+);
int tl=,tr=,cntl=,cntr=;
for(int i=;i<=n/;i++)
{
if(s[i]!='?') tl+=s[i]-'';
else cntl++;
}
for(int i=n/+;i<=n;i++)
{
if(s[i]!='?') tr+=s[i]-'';
else cntr++;
}
if(cntl<cntr) swap(cntl,cntr),swap(tl,tr);
int cnt=cntl-cntr,t=tl-tr;
if(!cnt&&!t) { printf("Bicarp\n"); return ; }
if(!cnt&&t) { printf("Monocarp\n"); return ; }
if(t>=) { printf("Monocarp\n"); return ; }
if(cnt/*>-t) { printf("Monocarp\n"); return ; }
if(cnt/*<-t) { printf("Monocarp\n"); return ; }
printf("Bicarp\n");
return ;
}
Codeforces 1215D. Ticket Game的更多相关文章
- Codeforces 1215D Ticket Game 题解
Codeforces 1215D Ticket Game 原题 题目 Monocarp and Bicarp live in Berland, where every bus ticket consi ...
- Ticket Game CodeForces - 1215D 博弈题
题目描述 Monocarp and Bicarp live in Berland, where every bus ticket consists of n digits (n is an even ...
- 【博弈论】CF 1215D Ticket Game
题目大意 洛谷链接 给出一个长度为\(n\)的由数字组成的字符串(\(n\)是偶数).但可能有偶数个位上的数字为?. 现在有两个人\(A\)和\(B\),在?的位置上填\(0\)~\(9\)的数,一直 ...
- CodeForces 146A Lucky Ticket
Lucky Ticket Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submi ...
- Codeforces Round #512 (Div. 2, based on Technocup 2019 Elimination Round 1) C. Vasya and Golden Ticket 【。。。】
任意门:http://codeforces.com/contest/1058/problem/C C. Vasya and Golden Ticket time limit per test 1 se ...
- Codeforces Round #585 (Div. 2) D. Ticket Game
链接: https://codeforces.com/contest/1215/problem/D 题意: Monocarp and Bicarp live in Berland, where eve ...
- Codeforces 938 D. Buy a Ticket (dijkstra 求多元最短路)
题目链接:Buy a Ticket 题意: 给出n个点m条边,每个点每条边都有各自的权值,对于每个点i,求一个任意j,使得2×d[i][j] + a[j]最小. 题解: 这题其实就是要我们求任意两点的 ...
- Codeforces 938.D Buy a Ticket
D. Buy a Ticket time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
- Codeforces 938D Buy a Ticket (转化建图 + 最短路)
题目链接 Buy a Ticket 题意 给定一个无向图.对于每个$i$ $\in$ $[1, n]$, 求$min\left\{2d(i,j) + a_{j}\right\}$ 建立超级源点$ ...
随机推荐
- html页面中引入html
我们写页面通常会遇到这种情况,一个模块很多页面都用到,那么我们为了方便就会单独写到一个页面,然后引入进去,我知道的有三种: 1.用标签<iframe></iframe> 例: ...
- PyCharm中Qt Designer+PyUIC配置
本文环境配置: 系统=>windows10:64位 语言=>Python:3.7.1 第三方库PyQT5:5.11.3pyqt5-tools:5.11.3.1.4 工具=>PyCha ...
- ZOJ - 3780-Paint the Grid Again-(拓扑排序)
Description Leo has a grid with N × N cells. He wants to paint each cell with a specific color (eith ...
- Unity3D_(游戏)甜品消消乐02_游戏核心算法
甜品消消乐01_游戏基础界面 传送门 甜品消消乐02_游戏核心算法 传送门 甜品消消乐03_游戏UI设计 传送门 GameManager脚本上修改Fill Time可以改变消消乐移动速度 实现过 ...
- [前端][自定义DOM事件]不使用setTimeout实现双击事件或n击事件
使用setTimeout实现双击事件 例如,这样: let div = document.getElementById("div"); doubleClick(div, funct ...
- Babel编辑ES6代码
1.安装babel依赖 npm install --save-dev @babel/core @babel/cli @babel/preset-env npm install --save @babe ...
- 详讲KMP算法
两个字符串: 模式串:ababcaba 文本串:ababcabcbababcabacaba KMP算法作用:快速在文本串中匹配到模式串 如果是穷举法的方式: 大家有发现,这样比效率很低的. 所以就需要 ...
- What is the !! (not not) operator in JavaScript?
What is the !! (not not) operator in JavaScript? 解答1 Coerces强制 oObject to boolean. If it was falsey ...
- React之父子组件之间传值
1.新增知识点 /** React中的组件: 解决html 标签构建应用的不足. 使用组件的好处:把公共的功能单独抽离成一个文件作为一个组件,哪里里使用哪里引入. 父子组件:组件的相互调用中,我们把调 ...
- BurpSuite(一)工具介绍
, 本章目标: 1. 安装并配置好Burpsuite 2. 了解其各个模块功能 Burpsuite介绍 Burp Suite 是用于攻击web应用程序的集成平台.它包含了许多工具,并为这些工具设计了许 ...