首页 > 代码库 > Codeforces Round #275 (Div.1) Solution

Codeforces Round #275 (Div.1) Solution

好久没做题了,开场Virtual热热身。

A 构造,我的方法是,取1,2,3...,k这几个差值,前k+1个数分别是 1, k+1, 2, k, ...., 之后就k+2, k+3, ..., n

B 因为题设是与操作。我们按照每一位来,如果有一个限制某位是1,则将那段区间标志1,没有限制的位全部置零即可,然后检验为0的位是否全是1。标志一段区间可以用标记法,检验可以求和看差值。

C 我做完之后看了CF tutorial 跟我的做法不同。我的做法比他给的复杂度低一点,不过题解好帅,而且跑出来速度好像差不多。

我的做法是枚举friend使用每一个字符串,bfs看到哪些位能够刚好确定这个字符串!复杂度一直下不来。直到我发现了一个小技巧。有兴趣可以看http://codeforces.com/contest/482/submission/9351777

D 如果不考虑那个子树的染色顺序就是一个很水的题了。于是我考虑只要找到一些不管正着来反着来都一样的染色方案就行了,由于每棵子树从根节点开始染色,于是这种方案显而易见就是左兄弟子树所有染色节点的和等于右兄弟子树所有染色节点的和。很明显要么这些兄弟都是奇数个染色,要么都是偶数个。(因为若某个为奇数,左右和必然是偶数,则总体和为奇数,假如还有一个偶数,左右和为奇数,总体和偶数,则矛盾,偶数也是同理)之后就随意搞了。具体可看http://codeforces.com/contest/482/submission/9353680

Codeforces Round #275 (Div.1) Solution