牛客练习赛106
是提高组难度的比赛,但是跟现在的NOIP比起来要简单太多了。
A
可以发现先手必胜 不用读入直接输出即可。
B
先考虑特殊情况 能力值不用变就行 直接输出0
若能力值需要改变 根据最坏情况需要把那些跟能力无关的先都踩一遍。
再踩跟能力有关的这样会先踩2n次 此时能力值还是不变的 然后把能力值的差算出来加和即可。
C
直接构造 考虑1绕半圈0绕半圈此时变成了\((n-2)\cdot (n-2)\)大小的矩阵。
可以将其视为递归构造。
D
先把\(3\cdot 3\)的构造出来
111
010
000
然后仍然考虑递归构造生成\(5*5\)的矩阵
将外面一圈接触0的变成1接触1的变成0 最后给四角附上相应的值。
此时可以发现0,1还未联通 左右各修改一个特殊点即可。
容易发现递归下去即可。
E
一张完全图,或者更准确来说是一张竞赛图 删掉m条边求是否存在奇环。
找到一个奇环只能暴力来做,但是判奇环只需要判断这张图是否为二分图即可。
判二分图最好的方法是染色。
考虑n为\(200000\)边数很多 考虑到当n很大时删掉的边也应该很多m最大为\(200000\)也不够
所以考虑特判1000以上的n 都是存在奇环的。
那么10000以下的n进行二分图染色复杂度可以接受。
F
这种期望的题目n为\(1000000000\)提示我们答案是一个式子。而不是线性递推期望。
考虑每一个人对答案的贡献。
先判掉n==1答案为1的情况。
当n>1时容易想到第一个人和最后一个人的期望都是1/2
考虑第i个人的期望 i-1有1/2的概率到i上还有1/2的概率到前面的某个位置上。
若i-1在1/2中占了i 那么i一定没贡献。
若i-1在1/2中没有占i 那么i有1/2的概率占到i
这样概率为1/4 期望为1/4
由此容易得到答案1+(n-2)/4
当然可以考虑用方案数来计算概率 不过较为繁琐。
G
容易想到两个1之间一定不会出现互换情况。
而每次交换只交换相邻位置,由此我们知道了1在序列中的相对位置不变。
可以直接考虑dp第i个1到第j个位置的最小代价。
复杂度\(n^3\)
观察dp式子倒叙枚举即可优化到\(n^2\)
当然有其他的状态的设计可以使得复杂度就是\(n^2\)
神仙出题人有一个最小费用最大流的做法。不补了。