摘要: 题目 https://cn.vjudge.net/problem/Gym-101840H 题意 给出一棵树,问有多少对点,将他们之间的边权相乘之后所获得的值仅有两个不同的质因子。 题解 当时没想着用并查集做,写了个点分治= =。我们对于重心的子树挨个搜索,用number数组记录下质因子数量为0, 1 阅读全文
posted @ 2019-08-15 20:24 Ruby·Z 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 非容斥方法 struct Edge { int to, net; }edge[maxn * 2]; int head[maxn], cnt; int n, k; int dis[maxn], arr[maxn], sz[maxn], msz[maxn], tail, all, rt; bool vi 阅读全文
posted @ 2019-08-15 19:36 Ruby·Z 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 欧拉筛 bitset<maxn> is_prime; int prime[maxn], prime_cnt; void get_prime(int n) { is_prime[1] = 1; for(int i = 2; i <= n; i++) { if(is_prime[i] == 0) pri 阅读全文
posted @ 2019-08-15 08:54 Ruby·Z 阅读(84) 评论(0) 推荐(0) 编辑