Codeforces Round #557 (Div. 1) 简要题解

Codeforces Round #557 (Div. 1) 简要题解

codeforceside

A. Hide and Seek

枚举起始位置\(a\),若是\(a\)未在序列中出现,则对答案有\(2\)\(3\)的贡献。spa

\(a\)在序列中出现,找到\(a\)第一次出现的位置\(x\),则说明在\(x\)位置以前须要把\(a\)移动到\(a+1\)\(a-1\)处,只须要判断\(x\)后面有没有\(a+1\),有没有\(a-1\)。对每种数字记录第一次和最后一次出现位置便可。
codecode

B. Chladni Figure

旋转的角度\(k\)必定是\(n\)的约数。暴力枚举约数判断便可,复杂度\(O(n\sigma_0(n))\)
code字符串

C. Thanos Nim

结论是后手必胜当且仅当局面中的最小值个数超过一半,由于当最小值个数超过一半时操做必改变最小值,且操做后最小值个数不超过一半,而在最小值个数不超过一半时显然存在一种操做策略能够不改变最小值,而使操做后最小值个数超过一半。
codeget

D. Palindrome XOR

\(n\)为读入的字符串长。显然\(b\)的长度就是\(n\),且\(a\)的长度小于\(n\)io

枚举\(a\)的长度\(m\),这样就一共有\(n+m\)\(01\)变量待肯定,这\(n+m\)\(01\)变量之间存在一些相等或不等的关系,同时还有一些变量被强制赋值,能够新建两个点表示数值\(0/1\)后,把限制关系视做边(相等边权为\(0\),不等边权为\(1\))建出图,若图中不存在奇环则答案为\(2\)的连通块个数减\(1\)次方,不然答案为\(0\)class

复杂度\(O(n^2)\)
codetest

E. Rainbow Coins

对每一个\(i\)求出是否和\(i-1\)\(i+1\)相同(\(2\)次询问),能够将序列分割成若干段,保证相邻两端颜色不一样。接下来须要求每一段的颜色,假设第一段的颜色为\(0\),第二段的颜色为\(1\),而后就只须要知道第\(i\)段和第\(i-2\)段的颜色是否相同就好了(\(2\)次询问)。共计\(4\)次询问。
code变量

F. Zigzag Game

首先按照剧本咱们应该选\(\text{Bob}\),由于\(\text{Bob}\)才是实际意义上的先手。im

这是一个二分图博弈的模型,这个模型中关键的一点在于:求出二分图某个知足必定条件的匹配,接着先手就只要按照剧本沿匹配边走就能\(\text{win}\)了。

考虑这个匹配须要知足什么样的性质。不失通常性地,假设\(\text{Alice}\)选择了\(\text{Increasing}\)并选择了一个左侧节点。不是这种状况的话能够经过将边权取反到达相同的结果。

假设博弈过程当中存在连续的三次操做\(w \to x \to y \to z\),其中\(w \to x\)\(y \to z\)\(\text{Bob}\)走的,也即,\((w,x),(y,z)\)两条边在匹配中。此时咱们的要求是在\(\text{Alice}\)走到\(y\)后,\(\text{Bob}\)可以走到\(z\),也即\(val(x,y)>val(y,z)\),固然这里对\(val(x,y)\)也是有限制的,即\(val(x,y)>val(w,x)\)

可知上述限制是对匹配的惟一限制。也就是说,匹配不合法当且仅当存在\((w,x)\in P,(y,z)\in P\)使得\(val(w,x)<val(x,y)<val(y,z)\)

这是一个稳定婚配的模型,左侧的每一个点对右侧点的偏好值与边权负相关,右侧的每一个点对左侧点的偏好值与边权正相关。求出一组稳定婚配后按照剧本走就行了。

code

相关文章
相关标签/搜索