摘要: 【传送门:BZOJ2599】 简要题意: 给出一棵n个点的树,和每条边的边权 求出所有距离为k的点对中,两个点之间的最少边数 题解: 点分治好题 设c[i]为当前点分治的时候与根的距离为i的最小边数 因为我们不能使得求出来的点对都在一棵子树里面,所以我们枚举每一棵与根相连的子树,每次求出对于这棵子树 阅读全文
posted @ 2018-04-27 20:56 Star_Feel 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 【传送门:BZOJ2152】 简要题意: 给出一棵n个点的树,和每条边的边权,求出有多少个点对,它们的距离为3的倍数 最后输出求出的点对数/总点对数的最简分数 题解: 点分治例题 求值时设t[i]为路径的值%3==i的情况数,那么答案就为t[1]*t[2]*2+t[0]*t[0] 参考代码: 阅读全文
posted @ 2018-04-27 11:23 Star_Feel 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 【传送门:BZOJ1468&BZOJ3365】 简要题意: 给出一棵n个点的树,和每条边的边权,求出有多少个点对的距离<=k 题解: 点分治模板题 点分治的主要步骤: 1、首先选取一个点,把无根树变成有根树。 那么如何选点呢? ——树形DP 因为树是递归定义的,所以我们当然希望递归的层数最小。 每次 阅读全文
posted @ 2018-04-27 09:59 Star_Feel 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 【传送门:BZOJ3530】 简要题意: 给出m个数,要求求出不含任意一个数的长度至多为n的数的数量 题解: 这道题比文本生成器要复杂一点,就是因为它的位数不确定,且不可以含有前导0 所以我们用数位DP的思想来做 设f[i][j][k]为当前长度为i且走到AC自动机的第j个点时,如果k=0,则表示仍 阅读全文
posted @ 2018-04-27 08:57 Star_Feel 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 【传送门:BZOJ1030】 简要题意: 给出n个单词,要求求出至少含一个单词的长度为n的字符串数量 题解: 显然直接求出是很难求的,那么我们就求出总的字符串数量,再求出不含任何一个单词的字符串数量 然后相减就是答案 很像GT考试,不过变成了多个串,那么就用AC自动机 设f[i][j]为长度为i时到 阅读全文
posted @ 2018-04-27 07:47 Star_Feel 阅读(263) 评论(0) 推荐(0) 编辑