随笔分类 -  杂题

分治&二分&yy题&我也不知道算什么的题...
摘要:解法: 假设n分解因式之后的形式是n = a1 ^ b1 * a2 ^ b2 *...*an ^ bn 它的因子个数就是(b1+1)*(b2+1)*...*(bn+1) 因子和是(1+a1 ^ 1+..+a1 ^ b1)*(1 + a2 ^ 1 +..+a2 ^ b2 )*..*(1 + an ^ 1 + ... +an ^bn) 所以因子个数为素数的条件就是只有一个素因子并且b1 + 1为素数; 因子和为素数的条件就是只有一个素因子并且(1 + a1 ^ 1+..+a 1 ^ b1)为素数 接下来要判断因子积是不是完全平方数,因为因子都是成对出现的 i * n / i == ... 阅读全文
posted @ 2013-07-31 11:10 silver__bullet 阅读(406) 评论(0) 推荐(0)
摘要:题意:给定一棵n节点的树(n<=10000),求满足dis(i,j)<=k的点数个数。p.s.准备学习树链剖分。。先从qzc的论文开始。。解法:树上分治。 我们可以通过dfs求出每个点到子树根的距离,对于以u为根的子树,满足条件并且路径过u的点对数=满足条件的所有点对数-路径不过u的点对数。 求法就是对所有dis排序然后两个指针扫,时间复杂度O(n).和http://acm.buaa.edu.cn:4567/problems/25一样的做法。 当树退化的时候直接分治复杂度会很高,所以对于每个子树我们要找出重心,然后选重心为根再进行分治。这样的话递归深度会控制在log(n). 1 # 阅读全文
posted @ 2013-02-07 22:22 silver__bullet 阅读(215) 评论(0) 推荐(0)