上一页 1 ··· 6 7 8 9 10 11 12 13 14 15 下一页
摘要: "传送门" 题目大意 给一颗n个点的树,求树的直径(最长的一条链) 题解 先随便找一个点u,dfs出离它最远的点v 于是有以下情况: 直径就是这条链 直径经过u,是这条链的延长 直径不经过u 只需要从v再进行一边dfs,便可以求出直径。 code cpp include include includ 阅读全文
posted @ 2017-08-31 18:59 CzYoL 阅读(250) 评论(0) 推荐(0) 编辑
摘要: "传送门" 题目大意 有n个村庄,每个村庄都有一个(x, y)坐标和z海拔,定义两个村庄间的dist为坐标的距离,cost为海拔差的绝对值,求图的一颗生成树,使得$\frac{\sum cost}{\sum dist}$最小。 题解 最小比例生成树的裸题。 看到$\frac{\sum cost}{\ 阅读全文
posted @ 2017-08-31 18:40 CzYoL 阅读(197) 评论(0) 推荐(0) 编辑
摘要: "传送门" 题目大意: 给你一些密码片段字符串,让你求长度为n,且至少包含k个不同密码片段串的字符串的数量。 题解: 因为密码串不多,可以考虑状态压缩 设dp[i][j][sta]表示长为i的字符串匹配到j节点且状态为sta的数量。 其中sta存储的是包含的密码串情况,在构建fail指针时,当前节点 阅读全文
posted @ 2017-08-29 21:43 CzYoL 阅读(170) 评论(0) 推荐(0) 编辑
摘要: "传送门" 题目大意: 给你一个字符主串和很多病毒串,要求更改最少的字符使得没有一个病毒串是主串的子串。 题解: ac自动机 + dp,用病毒串建好ac自动机,有毒的末尾flag置为true 构建fail指针时,如果fail指针所指节点flag=true,则将当前节点的flag也置为true。 用d 阅读全文
posted @ 2017-08-29 21:36 CzYoL 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 题目大意 人数n,电梯载重k,电梯限制人数2,给出每个人的体重v,求按照怎样的顺序排队电梯运送的次数越多。 题解 排序后,每次都先选择最小的,然后看最大的上来是否超出载重, 若超出,则这两个对答案贡献2, 若不超出,则再添加一个次小的(不浪费最大的). code cpp include includ 阅读全文
posted @ 2017-08-29 19:56 CzYoL 阅读(278) 评论(0) 推荐(0) 编辑
摘要: "传送门" 题目分析 本题主要考察kmp中next数组在求循环时的运用: 字符串是循环的: len % (len next[len]) == 0 字符串循环次数: len / (len next[len]) 字符串循环节长度: len next[len] code cpp include inclu 阅读全文
posted @ 2017-08-29 19:01 CzYoL 阅读(258) 评论(0) 推荐(0) 编辑
摘要: HDU2222 "传送门" 题目分析 裸题:注意构建自动机用的是模式串,思想和kmp很类似。 code: cpp include include include using namespace std; const int N = 1e4 + 5, M = 55, L = 1e6 + 5; int 阅读全文
posted @ 2017-08-29 18:53 CzYoL 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 传送门 题目分析 考虑将大矩阵的每个1*q矩阵哈希值求出,然后让小矩阵的第一行在大矩阵中找,如果找到,并且能匹配所有行则出现过。否则没出现过。 在初始化1*q矩阵时可以进行优化:假设该行为123456,要求1*5的矩阵哈希值,可以先暴力求出1~5,为 $1 * H^4 + 2 * H^3 + 3 * 阅读全文
posted @ 2017-08-26 11:31 CzYoL 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 传送门 题目分析 题意即求有多少对字符串只相差一个字符,枚举删除每个字符后的哈希, 看有多少相等即可。 比如有如下字符串:$Sd123$,其中S部分的哈希值为H,删除的是d,则原字符串的哈希值为$$(((H * T + d) * T + 1) * T + 2) * T + 3 = H * T^4 + 阅读全文
posted @ 2017-08-26 09:12 CzYoL 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 题目分析 朴素的做法就是预处理下一个目的地,然后跑模拟,超时。 本题最重要的考点是倍增优化。设$fa[i][j]$表示a从i出发行驶$2^j$“次”后行驶的路程,$fb[i][j]$表示从i出发行驶$2^j$“次”后行驶的路程,注意这里的"次",a、b交替行驶。$f[i][j]$表示从i出发a、b交 阅读全文
posted @ 2017-08-25 20:16 CzYoL 阅读(191) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 15 下一页