【博弈论】CF 1215D Ticket Game】的更多相关文章

题目大意 洛谷链接 给出一个长度为\(n\)的由数字组成的字符串(\(n\)是偶数).但可能有偶数个位上的数字为?. 现在有两个人\(A\)和\(B\),在?的位置上填\(0\)~\(9\)的数,一直到填完. 让\(A\)先手,若最后该字符串的左半边数字和等于右半边数字和 ,则\(B\)胜利,否则\(A\)胜利. 样例输入 8 ?054??0? 样例输出 Bicarp PS:更多样例和数据范围请打开原题链接吧,实在懒得粘了orz 思路 简单分情况讨论一下就可了. 设左半部分数字和为\(x\),?…
Codeforces 1215D Ticket Game 原题 题目 Monocarp and Bicarp live in Berland, where every bus ticket consists of n digits (n is an even number). During the evening walk Monocarp and Bicarp found a ticket where some of the digits have been erased. The numbe…
传送门 博弈,发现情况有点多,分析一下把有用的状态提取出来 显然各个位置的数字是没用的,我们只要知道两边的数字和分别是多少 并且状态显然和左右两边的 "?" 数量有关 因为最终我们只在意左右是否相等,即差值是否为 $0$ 所以两边的数字和分别是多少也不必要,我们只要知道两边数字的差即可 再分析一下,对于当前某种两边都有 "?" 的情况,先手走了对他最优的决策,使数字差往对他有利的方向发展 后手显然可以在另一边做同样的决策,使得数字差又变回来,即后手可以抵消先手的决策…
题目 Musicians of a popular band "Flayer" have announced that they are going to "make their exit" with a world tour. Of course, they will visit Berland as well. There are n cities in Berland. People can travel between cities using two-di…
题目描述 Monocarp and Bicarp live in Berland, where every bus ticket consists of n digits (n is an even number). During the evening walk Monocarp and Bicarp found a ticket where some of the digits have been erased. The number of digits that have been era…
http://172.20.6.3/Problem_Show.asp?id=2002 https://blog.csdn.net/qq_24451605/article/details/50154973 #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<iostream> #include<map> using namespa…
题目链接 http://codeforces.com/contest/1058/problem/C 这题还是暴力最方便,和的情况最多有n*a[i]  900种把每种都试一遍 #include<bits/stdc++.h> using namespace std; int n; string s; bool check(int x) { ,cnt=; ;i<n;i++) { sum+=(s[i]-'); if(sum==x) { sum=;cnt++; } else if(sum>x…
暴力的求SG函数会超时,正解是先处理出10^6以内的SG值,对于更大的,开根号之后计算出. 小数据观察可以发现sg函数值成段出现,而且增长速度很快,因此可以计算出来每一段的范围,只需打表即可. Nim游戏: Nim和:L.Bouton给出了一个定理,状态(X1, X2, ..., Xn)为必败态当且仅当X1 xor X2 xor .... xor Xn = 0,xor是二进制的按位异或操作. #include <iostream> #include <algorithm> usin…
传送门 解题思路 首先很好写出一个\(O(ab)\)的记搜,但发现这样无法处理\(a=1\)和\(b=1\)的情况,这两种情况需要特判.首先\(a=1\)的情况,就是如果当前选手让\(a+1\)必胜,那么他一定会给\(a+1\),否则会给\(b+1\),如果到\(2^b>n\)时,说明谁动\(a\)谁输,就是平局了,这样的话可以模拟这个过程不断给\(b+1\)即可.第二种情况是\(b=1\),这种情况一定没有平局,那么就和刚才一样模拟即可.最后一种情况是\(a=1\)并且\(b=1\),这样的话…
题目大意 流行乐队"Flayer"将在\(n\)个城市开演唱会,这\(n\)个城市的人都想去听演唱会,每个城市的票价不同,于是这些人就想是否能去其他城市听演唱会更便宜,但是去其他的城市也需要路费. 输入格式 第一行包含两个整数\(n\)和\(m\). 接下来\(m\)行,每行三个数\(u.v.w\)表示\(u\)城市到\(v\)城市要\(w\)元. 接下来\(n\)个数,表示每个城市的票价\(a\). 输出格式 输出n个数字,表示对应的人到别的城市参加演唱会再返程的最小费用,当然也可以…