随笔分类 - dp专题
摘要:题目链接 点我跳转 题目大意 给定 \(N\) 台电脑,起初每台电脑都是关闭的 现在你可以随意打开电脑,但如果第 \(i-1\)、第 \(i+1\) 台电脑是开启的,则第 \(i\) 台电脑也会自动开启,而你无法手动开启它 问你有多少种打开电脑的方法,使得最后所有电脑都是开着的 解题思路 分成两步来
阅读全文
摘要:题目链接 点我跳转 题目大意 给定 \(M\) 个约束条件,问满足这 \(M\) 个约束条件的长度为 \(N\) 排列有多少个 每个约束条件为一个三元组 \((x , y, z)\),要求 \(a_1,a_2,..,a_x\) 小于 \(y\) 的数的个数不超过 \(z\) 解题思路 可以将 \(x
阅读全文
摘要:题目链接 点我跳转 题目大意 给定 \(N\) 个点 \(M\) 条边,每条边都对应一个小写字母 问是否存在一条从 \(1\) 到 \(N\) 的路径,使得路径上的字母构成的字符串为回文串 若存在则输出回文串的最短长度 若不存在则输出 \(-1\) 解题思路 考虑双向 \(bfs + dp\) (以
阅读全文
摘要:题目链接 点我跳转 题目大意 给定 $N$ 个物品和一个 $X$ ,第 $i$ 个物品的重量为 $ai$,你可以从中选择任意个物品(不能不选) 假定选择了 $S$ 个物品,物品的总重量为 $V$ 那么在满足 $(X - V) % S = 0$ 的前提下还需要支付 $(X - V) / S$ 的 $m
阅读全文
摘要:题目链接 点我跳转 题目大意 给定一个长度为 \(N\) 的序列 \(bi\) 问有多少个长度为 \(N\) 的序列 \(a\) 使得 \(b[i] = a[i]\) 或 \(b[i] = ∑a[j] , j∈[1,i]\) 解题思路 定义 $dp[i][j] $ 表示前 \(i\) 项的前缀和为
阅读全文
摘要:题目链接 点我跳转 题目大意 \(N\) 个人排成一列,每个人都有自己所属的乐队,其中第 \(i\) 个人一开始所在的位置为 \(i\) 你可以从队列中抽出任意数量的人,抽出后他们所在的位置将为空,之后你可以再把他们放进任意空位置 现要求同一个乐队的人必须站在一起,问最少要抽出多少人 解题思路 定义
阅读全文
摘要:题目链接 点我跳转 题目大意 约翰到商场购物,他的钱包里有 \(K(1 <= K <= 16)\) 个硬币,面值的范围是 \(1...100,000,000\)。 约翰想按顺序买 \(N\) 个物品 \((1 <= N <= 100,000)\),第 \(i\) 个物品需要花费 \(c[i]\) 块
阅读全文
摘要:题目链接 点我跳转 题目大意 共有 N 盏灯,第 \(i\) 盏灯的位置为 \(pi\)(单位 \(m\)),功率为 \(si\) 一开始所有灯都是亮的,且第 \(i\) 盏灯每亮一秒钟,就会消耗 \(si\) 的电量 现你位于第 \(c\) 盏灯的位置 , 你需要关闭所有的灯,问关闭所有灯需要消耗
阅读全文
摘要:题目链接 点我跳转 题目大意 取数游戏: 给定一个 \(N × M\) 的矩阵 每次取数时须从每行各取走一个元素,共 \(N\) 个。经过 \(M\) 次后取完矩阵内所有元素 每次取走的各个元素只能是该元素所在行的行首或行尾; 每次取数都有一个得分值,为每行取数的得分之和,每行取数的得分 = 被取走
阅读全文
摘要:题目链接 点我跳转 题目大意 你掉入了“垃圾井”,已知井的深度为 \(D\) 有 \(N\) 个垃圾,每个垃圾都可以用来吃或堆放,并且堆放垃圾不用花费时间。 现已知道了第 \(i\) 个垃圾扔下的时间 \(a[i].t\) ,以及每个垃圾堆放的高度 \(a[i].h\) 和吃进该垃圾能维持生命的时间
阅读全文
摘要:题目链接 点我跳转 题目大意 给你一张完全图,你可以删除任意数量的边 要求删除完后剩余的所有子图必须是完全图 问完全子图数量最少是多少 解题思路 定义 \(ok[i]\) 表示状态为 \(i\) 时所对应的点构成的图是否为完全图 (\(1\) 为是 , \(0\) 为否) 判断完全图可直接暴力枚举任
阅读全文
摘要:题目链接 点我跳转 题目大意 给定一串序列,问有多少种初始序列经过以下操作可以得到此序列: ① 、第一个数直接插入空的当前序列中 ② 、对从第二个数开始的每个数,如果它比上一个插入序列的数大,那么将它插入当前序列的最右边 如果它比上一个插入序列的数小,那么将它插入当前序列的最左边 解题思路 定义 \
阅读全文
摘要:题目链接 点我跳转 题目大意 给出 \(n\) 个物品,第 \(i\) 个物品体积为 \(w_i\),现把其分成若干组,要求每组总体积 \(<=W\),问最小分组。\((n<=18)\) 解题思路 \(dp[i]\) 表示当前状态为 \(i\) 的最少分组数 \(sum[i]\) 表示把当前状态的所
阅读全文
摘要:题目链接 点我跳转 题目大意 给定 \(n\) 个关卡 , 第 \(i\) 个关卡有个权值为 \(ai\) 的传送门 当你在第 \(i\) 个关卡时 , 如果 \(ai = 0\) 并且 \(i!=n\) ,则你闯关失败 否则你可以跳到 \(i + 1\) ~ \(i + ai\) 中的任意关卡 (
阅读全文
摘要:题目链接 点我跳转 题目大意 给定一个 \(N × M\) 的矩阵 对于矩阵的每一行,你可以在该行挑选不超过 \(⌊m/2⌋\) 个元素 要求挑选的所有元素的和为 \(K\) 的倍数,问可以挑选的最大元素和为多少 解题思路 先考虑如果题目给的是个一维数组而不是二维矩阵该怎么做 \(?\) 可以定义
阅读全文
摘要:题目链接 点我跳转 题目大意 给定一个长度为 \(N\) 的字符串 \(S\),\(S\) 仅由字符 \(j , z\) 组成 现在你最多可以执行 $0$ 到 \(K\) 次操作,每次操作可以选择字符串任意两个位置的字符将它们的位置交换 问最多可以组成多少对相邻的 \((j,z)\) 解题思路 很巧
阅读全文
摘要:题目链接 https://ac.nowcoder.com/acm/contest/6885/D 题目大意 给定一个长度为 N 的序列 A , 保证它是一个 01 序列 , 并执行以下两种操作 : ①、单点修改:将位置 X 上的数翻转( 0 变 1 , 1 变 0) ②、前缀修改:将位置 1 ~ X
阅读全文
摘要:题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=6774 题目大意 给定一个字符串 A 和一个字符串 B , 有 Q 次查询 每次查询给出一段区间 [L , R] , 问 A[L...R] 和 B串的 LCS 为多少 解题思路 定义 M 为 B 串的长度
阅读全文
摘要:补上一发被吞了的博客 ˋ(′~‘)ˊ 题目链接 https://codeforces.com/contest/1363/problem/E 题目大意 给你一颗包含 N 个节点以节点 1 为根的树 , 每个节点有它的成本 a , 初始状态 b 和最终状态 c (只有0、1两种状态) 现在你可以从任意节
阅读全文
摘要:题目链接 https://codeforces.com/contest/574/problem/D 题目大意 给你一个长度为 N 的序列,其中 ai 表示 i 这个位置有 ai 的木块 现在进行游戏,每轮可消除木块(若某木块的上或左或右没有木块则可以消除) 问要消除所有木块最多要几轮 解题思路 思维
阅读全文

浙公网安备 33010602011771号