Codeforces Round #411 div2

A. Fake NP

题意:询问一个区间[L,R]出现次数最多的正整数因子(>1)。

一个区间内一个因子P出现次数大概为[R/P]-[(L-1)/P],约等于(R-L+1)/P,P取2时最优。注意L=R时,且L为奇数输出L即可。

B. 3-palindrome

题意:要求用'a','b','c'组成长度为n的字符串,并且没有长度为3的回文串,还要使‘c’出现次数最少。

没有长度为3的回文串,等于没有长度为奇数(>1)的回文串。直接循环输出aabbaabb.....

C. Find Amir

题意:n个点,任意两点之间距离为(i+j)%(n+1)。要求输出遍历所有点的最短距离。

直接构造:1->n->2->n-1->3->n-2......距离为(n-1)/2

D. Minimum number of steps

题意:一个长度为n的由'a','b'组成的字符串。不允许出现'ab'这样的子串,每次可以用'bba'代替'ab'。询问最少代替次数。

'ab'->'bba'实际上就是将'a','b'互换位置并且增加一个’b'。当'a'被换到最右边的'b'的右边后该'a'就结束了。一个靠近'b'的'a'的花费为它后面'b'的个数。为了方便计算每次等于将'aaaaab'->'baaaaa'。不断重复下去。每次的花费就是2^('a'的个数+1)-1

E. Ice cream coloring

题意:你有n个节点,这个n个节点构成一棵树。每个节点拥有有si个类型的ice,同一个节点的ice互相连边构成完全图。对于拥有相同ice的节点u,v,在树上一定相邻。求将ice构成的图染色,相邻点不可同色的最小颜色数以及方案。

看到问题觉得是个NP问题就跑了......然后现在补一发。

首先,一个完全图的染色,一定要节点数个颜色。然后因为满足“对于拥有相同ice的节点u,v,在树上一定相邻。”假设树上有三个节点a,b,c.(a,b),(b,c)∈E,那么满足S(a)∩S(C)∈S(b)。//S(x)即节点x拥有的ice

所以如果S(b)中所有点染好色后,S(a)其余节点的染色与S(c)无关。互不影响。于是直接染色就好了,由此也可以看出最少需要的颜色数为max(|S|)。O(n+∑Si)

F. Expected diameter of a tree

题意:给一个森林,每次给u,v,询问u,v所在树任意取两个点连接起来得到的新树的直径d的期望。如果得到的不是树就输出-1.

期望=∑d/size(u)*size(v).直接算所有情况的直径d和就好了。每个点存下该点在原树中所能到达的最远距离。因为新树的直径可能会原树一样,于是要二分一个临界点,用类似启发式合并的方法去做。为了防止被卡还要存下已有答案。均摊O(mlog^2n)

 

所谓一句话题解.....

posted @ 2017-05-05 11:20  Oncle_Ha  阅读(283)  评论(0编辑  收藏  举报