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\)的点个数,用异或卷积定义乘法
显然答案为:
标签:692,两段,frac,Codeforces,-+,取反,考虑,证明,Div1 来源: https://www.cnblogs.com/Grice/p/14170116.html