摘要: 解法: 在对树的dfs同时维护两颗线段树,记录到达当前节点经过左路径和右路径上的权值,然后注意回退的时候要删除。。。 1 #include 2 #include 3 #include 4 #include 5 #pragma comment(linker, "/STACK:102400000,102400000") 6 using namespace std; 7 #define lson l,m,nG[N]; 15 vectorV[N]; 16 int w[N]; 17 pairans[N]; 18 struct segtree{ 19 int s[N>1; 27 阅读全文
posted @ 2013-07-31 11:13 silver__bullet 阅读(416) 评论(5) 推荐(1) 编辑
摘要: 解法: 假设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 阅读(402) 评论(0) 推荐(0) 编辑