08 2017 档案

摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1403 题意: 给出两个字符串, 求他们的最长公共子串 思路: 两个字符串的最长公共子串长度显然就是两个字符串的所有后缀中的最长公共前缀长度. 可以先用一个没有出现的字符(便于后面区分后缀是否属于相同字 阅读全文
posted @ 2017-08-29 22:23 geloutingyu 阅读(607) 评论(0) 推荐(0)
摘要:1 namespace IO { 2 const int MX = 4e7; //1e7占用内存11000kb 3 char buf[MX]; int c, sz; 4 void begin() { 5 c = 0; 6 sz = fread(buf, 1, MX, stdin); 7 } 8 inline ... 阅读全文
posted @ 2017-08-24 15:11 geloutingyu 阅读(220) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2896 题意: 中文题诶~ 思路: ac自动机 这里要求记录匹配的模式串的编号, 不过题目中说明了不同模式串对应的编号是不同的, 所以可以直接用 end 数组记录编号即可, 然后与主串匹配成功的标记一下 阅读全文
posted @ 2017-08-24 11:08 geloutingyu 阅读(331) 评论(0) 推荐(0)
摘要:先推荐两篇写的很好的ac自动机blog: http://blog.csdn.net/creatorx/article/details/71100840 http://blog.csdn.net/niushuai666/article/details/7002823 正题 题目链接: http://a 阅读全文
posted @ 2017-08-23 21:00 geloutingyu 阅读(260) 评论(0) 推荐(0)
摘要:先说下codevs1169吧, 题目链接: http://codevs.cn/problem/1169/ 题意: 中文题诶~ 思路: 多线程 dp 用 dp[i][j][k][l] 存储一个人在 (i, j), 一个人在 (k, l) 位置时对答案的最大贡献, 那么动态转移方程式为: dp[i][j 阅读全文
posted @ 2017-08-23 14:03 geloutingyu 阅读(437) 评论(0) 推荐(0)
摘要:题目链接: http://codevs.cn/problem/3027/ 题意: 中文题目诶~ 思路: dp 先给所有线段按照右端点值升序 sort 一下, 用 dp[i] 存储以第 i 条线段结尾的线段集合的最大价值, 那么动态转移方程式为: dp[i] = max(dp[i], dp[j] + 阅读全文
posted @ 2017-08-17 20:44 geloutingyu 阅读(199) 评论(0) 推荐(0)
摘要:题目链接: http://codevs.cn/problem/1068/ 题意: 中文题诶~ 思路: dp 用 dp[i][j][k][l] 表示取 i 个 1, j 个 2, k 个 3, l 个 4 时最大贡献为多少, 那么初始化为 dp[0][0][0][0] = v[1], 其中 v[i] 阅读全文
posted @ 2017-08-16 22:48 geloutingyu 阅读(151) 评论(0) 推荐(0)
摘要:计算 a * b 时间复杂度为 O(n^2) 代码: 阅读全文
posted @ 2017-08-15 21:22 geloutingyu 阅读(333) 评论(0) 推荐(0)
摘要:计算 a + b 阅读全文
posted @ 2017-08-15 18:47 geloutingyu 阅读(308) 评论(0) 推荐(0)
摘要:计算 a - b 代码: 阅读全文
posted @ 2017-08-15 18:14 geloutingyu 阅读(554) 评论(4) 推荐(0)
摘要:参考博客: https://wenku.baidu.com/view/8e9ebefb0242a8956bece4b3.html http://www.cnblogs.com/Rlemon/archive/2013/06/26/3157574.html 代码: 1 #include <iostrea 阅读全文
posted @ 2017-08-12 21:48 geloutingyu 阅读(228) 评论(0) 推荐(0)
摘要:题目链接: http://poj.org/problem?id=2185 题意: 给出一个矩形字符块, 求能组成该矩形块的最小子矩形块. 思路: 将每行字符串当作一个字符,那么原矩形字符块就成了一列字符,其最小循环节即为所求矩形块的宽; 将每列字符串当作一个字符,那么原矩形字符块就成了一行字符,其最 阅读全文
posted @ 2017-08-12 21:31 geloutingyu 阅读(470) 评论(0) 推荐(0)
摘要:题目链接: http://poj.org/problem?id=3167 题意: 给出两串数字 s1, s2, 求主串 s1 中的 s2 匹配数并输出每个匹配的开头位置. 区间 [l, r] 是 s2 的一个匹配当且仅当 s1[i] 是 [l, r] 中的第 s2[i - l] 大元素, 其中 l 阅读全文
posted @ 2017-08-11 15:26 geloutingyu 阅读(329) 评论(0) 推荐(0)
摘要:题目链接: https://vjudge.net/contest/70325#problem/K 题意: 给出一个字符串 str, 求 str 的所有前缀总共出现的次数. 思路: 先求一次 next 数组, 再用 vis[i] 存储 str[i - 1] 的所有后缀中能与 str 的前缀匹配的字符串 阅读全文
posted @ 2017-08-11 12:47 geloutingyu 阅读(265) 评论(0) 推荐(0)
摘要:题目链接: https://vjudge.net/contest/70325#problem/I 题意: 求多个字符串的最长公共子串, 有多个则输出字典序最小的. 思路: 这里的字符串长度固定为 60, 可以枚举其中一个字符串的所有子串, 然后拿这个子串去和其他字符串匹配就好了. 不过如果不用 km 阅读全文
posted @ 2017-08-10 21:29 geloutingyu 阅读(249) 评论(0) 推荐(0)
摘要:题目链接: https://vjudge.net/contest/70325#problem/H 题意: 输入字符串 str, 求 str 子串中既是 str 前缀又是 str 后缀的的字符串长度, 按照升序输出. 思路: 先求个 next 数组, next[i] 为以 i - 1(字符串下标从0开 阅读全文
posted @ 2017-08-10 20:32 geloutingyu 阅读(158) 评论(0) 推荐(0)
摘要:题目链接: https://vjudge.net/contest/70325#problem/D 题意: 给出一个循环字符串, 可以在两端添加任意字符, 问最少添加多少字符可以使循环字符串变成周期循环字符串且周期数大于1. 思路: gel = n - next[n] 为该字符串的最小循环节. 证明见 阅读全文
posted @ 2017-08-10 11:29 geloutingyu 阅读(202) 评论(0) 推荐(0)
摘要:题目链接: https://vjudge.net/contest/70325#problem/B 题意: 输出模式串在主串中出现的次数 思路: kmp模板 在 kmp 函数中匹配成功计数加一, 再令 j = nxt[j] 即可. 感觉有点奇怪的就是我拿 A 题的模板写这题居然会 tle, 而拿这题的 阅读全文
posted @ 2017-08-09 20:18 geloutingyu 阅读(279) 评论(0) 推荐(0)
摘要:题目链接: https://vjudge.net/contest/70325#problem/A 题意: 有两个数组 a, b, 输出 b 数组在 a 数组中的第一个匹配位置, 不能匹配则输出 -1. 思路: kmp模板 代码: 1 #include <iostream> 2 #include <s 阅读全文
posted @ 2017-08-09 19:34 geloutingyu 阅读(260) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6092 题意: 输入格式为, 对于每组测试样例第一行输入两个数 n, m, 接下来一行输入B数组, 有 m + 1个数. 其中 n 表示要构造的数组 A 的长度为 n. m 表示 A 数组的元素和为 m 阅读全文
posted @ 2017-08-09 16:21 geloutingyu 阅读(263) 评论(0) 推荐(0)
摘要:题目链接: http://codeforces.com/contest/834/problem/D 题意: 每个数字代表一种颜色, 一个区间的美丽度为其中颜色的种数, 给出一个有 n 个元素的数组, 问将其分成 k 个区间, 问 k 个区间的美丽度和最大为多少 . 思路: dp + 线段树区间更新, 阅读全文
posted @ 2017-08-09 15:09 geloutingyu 阅读(223) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6070 题意: 给出一个题目提交序列, 从中选出一个正确率最小的子串. 选中的子串中每个题目当且仅当最后一次提交是正确的. 思路: 分数规划 二分答案, 然后在 check 函数中查找是否存在某个区j间 阅读全文
posted @ 2017-08-07 10:49 geloutingyu 阅读(548) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/837/F 题意:给出一个大小为 n 的数组 a 和一个数 k,每次操作后的到一个 a' 数组,a'i 为 a 数组中 ai 的前缀和.问最少需要几次操作能使得数组中最大的元素不小于 k. 思路:可以分类讨论 阅读全文
posted @ 2017-08-06 13:33 geloutingyu 阅读(583) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/837/E 题意:f(a, 0) = 0 , f(a, b) = 1 + f(a, b - gcd(a, b)) 给出 a, b,求 f(a, b). 思路:对于当前 a, b,若 gcd(a, b) = c 阅读全文
posted @ 2017-08-06 13:24 geloutingyu 阅读(952) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6069 题意: 给出 l, r, k.求:(lambda d(i^k))mod998244353,其中 l <= i <= r, d(i) 为 i 的因子个数. 思路:若 x 分解成质因子乘积的形式为 阅读全文
posted @ 2017-08-06 11:07 geloutingyu 阅读(1105) 评论(1) 推荐(1)
摘要:题目链接: http://poj.org/problem?id=2689 题意: 给出一个区间 [l, r] 求其中相邻的距离最近和最远的素数对 . 其中 1 <= l < r <= 2,147,483,647, r - l <= 1e6 . 思路: 素数区间筛 要找到 [l, r] 中相邻最近和最 阅读全文
posted @ 2017-08-05 10:39 geloutingyu 阅读(2512) 评论(1) 推荐(0)
摘要:题目链接: http://codeforces.com/contest/837/problem/D 题意: 给出 n 个数, 从中选出 k 个数使得这 k 个数的乘积末尾 0 最多 . 思路: 先记录每个数能分解出的 2 和 5 的数目, 然后弄个01背包即可 . 用 dp[i][j][l] 表示从 阅读全文
posted @ 2017-08-04 17:18 geloutingyu 阅读(464) 评论(0) 推荐(0)
摘要:题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3830 题意: 有三个点 a, b, c, 对于其中任意一点 x 可以跨过一个点移动到另一个位置, 当且仅当移动前后的 x 与其所跨越的点的距离相等 .给出两组点, 问其能否相互到达, 若能并输出最少需 阅读全文
posted @ 2017-08-03 22:57 geloutingyu 阅读(261) 评论(0) 推荐(0)
摘要:题目链接: http://poj.org/problem?id=3694 题意: 给出一个 n 个节点 m 条边的图, 然后有 q 组形如 x, y 的询问, 在前面的基础上连接边 x, y, 输出当前图中有多少桥 . 思路: http://www.cnblogs.com/scau20110726/ 阅读全文
posted @ 2017-08-02 17:04 geloutingyu 阅读(364) 评论(0) 推荐(0)
摘要:题目链接: http://codeforces.com/contest/835/problem/D 题意: 定义 k 度回文串为左半部分和右半部分为 k - 1 度的回文串 . 给出一个字符串 s, 问 1 ~ s.size() 度回文串的数目分别为多少 . 思路: 预处理 + 记忆化dp 可以先花 阅读全文
posted @ 2017-08-01 20:44 geloutingyu 阅读(336) 评论(0) 推荐(0)