随笔分类 -  codeforces

摘要:题目大意: 给定n个数,构造一个序列,满足所有前缀积模m互不相等且不与n个数中任意一个相等。最大化序列长度。 将1~m-1每个数作为一个点,如果存在a,使得 i*a=j (mod m),那么从i向j连一条有向边。那么答案就是图中的最长路径。 又因为如果 i*a=j (mod m),则gcd(i,m) 阅读全文
posted @ 2017-05-25 21:02 gjghfd 阅读(248) 评论(0) 推荐(0)
摘要:题目大意: 给定一个森林,有若干个询问,每次询问在第i棵树中随机选一个点,在第j棵树中随机选一个点并将它们相连后树的直径的期望值。 对每棵树求出它的直径d,对每个点求出它到树上最远点的距离f,那么选择x、y点时树的直径就是: max(d[i],d[j],f[x]+f[y]+1) 对每棵树中点的f排序 阅读全文
posted @ 2017-05-25 20:45 gjghfd 阅读(188) 评论(0) 推荐(0)
摘要:题目大意: 给出一棵树,每条边有权值,求经过少于l条边,权值和少于w的路径总数。 点分治。每次求出所有点到重心的距离,按w排序,然后维护一个树状数组,记录经过的边<=i的点个数。由于可能两个点都在一棵子树中,再容斥一下就好了。 代码: 1 #include<iostream> 2 #include< 阅读全文
posted @ 2017-02-17 13:32 gjghfd 阅读(367) 评论(0) 推荐(1)