摘要:题目:传送门 题意 给你两个01串 a 和 b,让你构造一个长度最短的且字典序最小的 01串,使得这个 01串既不是 a 的子串,也不是 b 的子串。 a,b串的长度都在1~4000之间。 思路 设 dp[x][y] 表示 a 串处理完了前 x 个, b 串处理完了前 y 个,构造出来的答案串的最小
阅读全文
摘要:题目:传送门 题意 1 <= n, k <= 300 思路 这题邓老师用的是 dfs 序做的 --> 戳我 用dfs序的话,是 o(nk)的,复杂度略高 这题还可以用另一种思维做; 可以将染色转化为,将一颗树分成若干连通块,连通块里的颜色都相同,不同连通块的颜色不同; 把一颗树分成不同的两个连通块就
阅读全文
摘要:题目:传送门 题意 思路 看数据很容易想到二维 DP,只不过只想到 DP 还远远不够。 和不超过 20 的字符串不超过 2500 个,长度最长为 20。 那我们可以先暴力预处理出这些字符串,并建 trie 树. 用 dp[i][j] 表示处理完前 i 个字符,后缀在 trie 树上对应着 节点 j
阅读全文
摘要:题目:传送门 题意 思路 邓老师精讲 #include <bits/stdc++.h> #define LL long long #define ULL unsigned long long #define UI unsigned int #define mem(i, j) memset(i, j,
阅读全文
摘要:题目:传送门 题意 思路 题解 #include <bits/stdc++.h> #define LL long long #define ULL unsigned long long #define UI unsigned int #define mem(i, j) memset(i, j, si
阅读全文
摘要:题目:传送门 题意 思路 官方题解:地址 #include <bits/stdc++.h> #define LL long long #define ULL unsigned long long #define UI unsigned int #define mem(i, j) memset(i,
阅读全文
摘要:题目:传送门 题意 思路 将 m 写成 a * sqrt(b) 的形式,每个 xi 必然是 ui * sqrt(b) 的形式,且 u1 + u2 + .... + un = a; 那么问题就转化为了,求 u1 + u2 + ... + un = a 有多少本质不同的解,这个问题是经典的整数拆分问题,
阅读全文
摘要:题目:传送门 题意 题目描述 张老师到了一个王国去旅游,王国有n个景点,张老师到达这个城市所在的车站恰好位于第x个景点,这个王国非常特别,恰好所有著名的景点都在分布在直线上,每个景点在坐标pi上(单位:公里),张老师身体非常好,每走一公里花费一分钟。每个景点都有一个打卡点,并且必须在不迟于相应的时间
阅读全文
摘要:题目:传送门 题意 有 n 个不同的数,问用 < 和 = 连接它们,有多少种不同的方案。 n = 3 的时候,有 13 种方案: 1) A=B=C2) A=B<C3) A<B=C4) A<B<C5) A<C<B6) A=C<B7) B<A=C8) B<A<C9) B<C<A10) B=C<A11)
阅读全文
摘要:题目:传送门 题意:在 x 轴上,有 n 场演出,第 i 场在 xi 处,时间 ti 时表演,然后,有一个人,最快移动速度为 v,问你1、在任意处作为起点,最多能观看几场表演;2、在 x = 0 处开始,最多能观看几场表演。 1 <= n <= 1e5 思路: 参考 #include <bits/s
阅读全文
摘要:题目:传送门 题意:有 n 个店,一开始你在家,此时 t = 0,你可以花 1 单位时间从你家去任意的一个店,或者从某一个店去到另一个店。假设你在 t = x 的时候到达第 i 个店,那么你需要花 ai*x + bi 的时间在这个店买东西。现在问你在 T 单位时间内最多能去几个店买东西。 1 <=
阅读全文
摘要:题目:传送门 题意:你有 n 个人,你想从这 n 个人中选 p 个人去到不同的 p 个位置, 选 k 个人作为观众。如果第 i 个人被选为观众他的贡献就是 a[ i ],如果第 i 个人被选为第 j 个位置上的人,那么他的贡献就是 b[ i ][ j ]。问你选 p 个位置上的人和 k 个观众最大的
阅读全文
摘要:题目:传送门 题意:问存在多少 1 ~ n 的排列满足任意相邻的两个数互质,输出答案取余 mod。 1 <= n <= 28, 1 <= mod <= 30000 思路:很容易想到状压DP, dp[ i ][ j ]其中 i 是最后一个数要填的数,j 是当前使用过的数的状态,每一个二进制位对应一个数
阅读全文
摘要:题目:传送门 题意:问在区间 [ L, R ] 中使用的数字不超过 k 种的数的和是多少,例如区间 [ 10, 50 ] 中使用的数字不超过 1 种的数的和是 11 + 22 + 33 + 44 = 110. 1 <= L <= R < 1e18, 1 <= k <= 10, 输出答案对 99824
阅读全文
摘要:题目:传送门 题意:有 2^n 个人进行比赛,对他们编号 1~2^n,起初1和2打,3和4打,5和6打,7和8打...,然后1和2打完胜利的 和 3和4打完胜利的再打一场,1和2打完失败的和3和4打完失败的也再打一场,然后,失败组最终胜利的和胜利组最终胜利的再打一场。详情可看样例解释,结合着更容易理
阅读全文
摘要:题目: 传送门 题意: 有 n 个区间,一个数最多被 K 个区间 [Li, Ri] 包含让你选一些区间,使得被奇数个区间包含的数最多,输出这个最大值。 1 <= n <= 100000, 1 <= k <= 8, 1 <= Li <= Ri <= m <= 1e9 题解:一个数最多可以被 K 个区间
阅读全文
摘要:题目: 传送门 题意: 给你两个只由小写字符构成的字符串 s 和 t, 问你是否能从 s 找出两个不重合的子串s1, s2,使得s1 + s2 = t 多测试 T <= 100, 总的字符串长度不超过 400 解:看数据显然是可以 o(n^3) 的,我们知道 t 是由 s 的两个子串连接而成的。那我
阅读全文
摘要:题目:传送门 题意: 有n天,m个区域,第 i 天第 j 个区域有 a[ i ][ j ] 个动物, 然后, 你可以在放一个 2 * k 的矩阵, 问你 n 天能够观察到的动物最多是多少。 若两个矩阵都包含了 a[ i ][ j ],那 a[ i ][ j ] 只算一次。 1 ≤ n ≤ 50, 1
阅读全文
摘要:题目: 传送门 题意: 定义Nanosoft的 logo 为 四个大小相同的正方形合并成一个大正方形。左上角是红色的,右上角是绿色的,左下角是黄色的,右下角是蓝色的。 例如以下这些都是 以下这些都不是 给你一个n * m的矩阵,这个矩阵由 4 个大写字母 “R” , "G", “Y”, “B” 构成
阅读全文
摘要:一、直线型 问题描述: 有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆。求出总的代价最小值(或最大值)。 思路: 设 DP[ i ][ j ] 表示第 i 堆合并到第 j
阅读全文