Codeforces Round #181 (Div. 2)

来源:互联网 发布:男孩被父砍 知乎 编辑:程序博客网 时间:2024/05/19 17:50

转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents    by---cxlove


A:把所有数按正数,负数,零分一下。
      对于乘积为负数的那一组,只需要一个负数。
      然后看一下剩余负数个数,如果为奇数,则把一个负数加入到零那组,剩下的所有负数和正数乘积为正数。
      最后就是零那组。

B:并查集,求一下每个连通块的个数。如果有大于3的,直接输出无解。
      剩下的肯定是个数为3的单独一个集合,个数为2的集合如果大于个数为1的集合,则为无解。

C:长度为n的数字,只有两种数字可以出现,所以就枚举其中一种字母个数,另外一种字母个数就知道了。然后check一下和。如果是good number说明可行,那么种类就是一个组合数。

D:其实就是有多条链。。。无法再分解的如1,2,4,6,8……,然后能分解一次的有3,5,9,13,17……
dp[i][j]表示在第i层,j步操作的情况总数。
大概可以搞出个k^4log(n)的DP。4个分支,可以两两枚举,然后就可以搞到k^2*log(n)

E:大概想法就是求出分母中每个质数为因子有多少个,然后二分分子。
      但是容易超时,所以在求分母中每个质数为因子的个数的时候,要非常优越 
 
code:https://github.com/cxlove/ACM_ICPC/tree/master/Contest/Codeforces/%23181
原创粉丝点击