牛客练习赛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\)

神仙出题人有一个最小费用最大流的做法。不补了。

posted @ 2022-12-03 19:10  chdy  阅读(51)  评论(0编辑  收藏  举报