其他分享
首页 > 其他分享> > Codeforces Round #692 Div1

Codeforces Round #692 Div1

作者:互联网

D、F、E(高斯消元的解法)待更

A

首先忽略初始在对角线上的点
答案的下界显然为现在的点数

考虑对于对角线\((i,i)\),在第\(i\)行出现的与在第\(i\)列出现的点连边
容易得到答案的下界为:点数+环的个数

容易证明

B

结论:最后填数一定是某个前缀填\(0\),剩下的填\(1\),或前缀填\(1\),剩下的填\(0\)

证明:
考虑两个位置\(0,1\),交换后发现01与10的数量不变

C

结论:当\(n\ge 2\),\(n-1\)最后的符号一定是\(-\),\(n\)最后的符号一定是\(+\),其他位置符号任意

证明:
对于----+???-+这种情况,显然左边的-是可以全部实现的
于是我们考虑+????-+是否能被构造出来
我们找到最靠右的一个-,使得前面为+(-可以是\(n-1\))
考虑+????+---+,看成两段(+????+-)(--+)
由于左边要取反使得上我们要构造(取反)(不取反)这两段
发现这两段最后两个元素均为-+,通过归纳可以证明结论

然后题目转化成了给一些二的次幂前填+/-的系数,问能否凑出\(N\)
可以考虑从大到小考虑二的次幂,让\(N\)的绝对值最小

正确性:
若\(|x|\le |y|\),如果\(y\)可行,可以通过调整法证明\(x\)也可行

E

令\(c_i\)为sg值等于\(i\)的点个数,用异或卷积定义乘法
显然答案为:

\[\frac{1}{n+1}\sum\limits_{i=0}^{\infty} \frac{c^k}{(n+1)^k}=\frac{1}{n+1}\cdot \frac{1}{1-c/(n+1)} \]

标签:692,两段,frac,Codeforces,-+,取反,考虑,证明,Div1
来源: https://www.cnblogs.com/Grice/p/14170116.html