随笔分类 -  动态规划

摘要:马 题意 有 \(n\) 个数,初始全为 \(1\)。有 \(3\) 种操作: 将任意一个数 \(a \leftarrow a+50\); 将任意一个数 \(a \leftarrow a + 20\); 将任意一个数 \(a \leftarrow a \times 2\)。 给出每种操作的个数,你可 阅读全文
posted @ 2024-11-15 16:04 maniubi 阅读(2) 评论(0) 推荐(0) 编辑
摘要:Educational Codeforces Round 80 (CF1288) A. Deadline 题意 给出正整数 \(n,d\),求不等式 \(x+\lceil \frac{d}{x+1}\rceil \le n\) 是否有非负整数解。 思路 先不考虑上取整, \[x+ \frac{d}{ 阅读全文
posted @ 2024-11-11 22:50 maniubi 阅读(2) 评论(0) 推荐(0) 编辑
摘要:观景房 题意 给出若干个矩形,所有矩形组合形成的图形包含了若干条水平线。 你可以选出若干条水平线,必须满足高度先上升后下降,求选出的水平线长度和的最大值。 思路 先考虑如何求出所有水平线的高度和长度,观察下面的图片。 每个位置的水平高度就是覆盖这个位置的矩形高度最大值。 我们就需要一个数据结构支持以 阅读全文
posted @ 2024-10-16 21:48 maniubi 阅读(2) 评论(0) 推荐(0) 编辑
摘要:[JOI 2013 Final]搭乘 IOI 火车 题意 给出两个由 \(\text{OI}\) 组成的字符串 \(S,T\)。 可以删除每个字符串的前缀和后缀。 每次从剩下部分的第一位取出一个字符放到新的字符串中。 要求新字符串必须以 \(\text{I}\) 开头结尾,相同的字符不能相邻,求新字 阅读全文
posted @ 2024-10-10 15:47 maniubi 阅读(7) 评论(0) 推荐(0) 编辑
摘要:[NOIP 2024 模拟3]变幻 题意 给出长度为 \(n\) 的序列 \(a\)。可以进行 \(k\) 次修改。 每次修改可以把一个数变得更小。求序列中山谷数之和的最大值。 思路 动态规划,定义 \(dp_{i,j}\) 表示前 \(i\) 个数进行 \(j\) 次修改的最大和。 因为连续两个点 阅读全文
posted @ 2024-09-26 20:55 maniubi 阅读(4) 评论(0) 推荐(0) 编辑
摘要:[COCI2022-2023#4] Zrinka 题意 给定两个由 \(0,1\) 组成的序列。 \(0\) 只能填入偶数,\(1\) 只能填入奇数。 要求两个序列单调递增并且每个数最多使用一次。 求所用数最大值的最小值。 思路 动态规划。 定义 \(dp_{i,j}\) 表示序列 \(1\) 填到 阅读全文
posted @ 2024-09-24 20:36 maniubi 阅读(12) 评论(0) 推荐(0) 编辑
摘要:Atcoder Beginner Contest 372 A - delete . 模拟即可。 #include <bits/stdc++.h> using namespace std; using ll = long long; void solve() { char ch; while (cin 阅读全文
posted @ 2024-09-21 22:32 maniubi 阅读(226) 评论(0) 推荐(0) 编辑
摘要:[POI2014] TUR-Tourism 题意 给出一张图,在这张图中,任意两点间不存在节点数超过 \(10\) 的简单路径。 第 \(i\) 个点被选的代价为 \(C_i\),每个节点要么选,要么与它直接相连的点中至少有一个被选。 求最小代价。 思路 图的生成树上状压动态规划。 由于给出的是一张 阅读全文
posted @ 2024-09-19 20:51 maniubi 阅读(6) 评论(0) 推荐(0) 编辑
摘要:[CQOI2007] 涂色 题意 给出一个字符串,每个位置有一种颜色。 有一个初始无颜色的字符串,每次可以把一段字符染成同一种颜色。 求最少染多少次色,能把两个字符串变成一样。 思路 区间动态规划。 定义 \(dp_{i,j}\) 表示把 \([l,r]\) 这段区间染成一样需要的最小次数。 发现染 阅读全文
posted @ 2024-09-19 19:37 maniubi 阅读(7) 评论(0) 推荐(0) 编辑
摘要:[清华集训2012] 串珠子 题意 给定 \(n\) 个点和 \(n\times n\) 的矩阵 \(c\)。 有 \(c_{i,j}\) 种方案把点 \(i\) 和点 \(j\) 连接起来。 求有多少种方案使得整张图连通。 思路 注意到 \(1\le n \le 16\),考虑状压。 定义 \(g 阅读全文
posted @ 2024-09-18 21:00 maniubi 阅读(5) 评论(0) 推荐(0) 编辑
摘要:找朋友2 题意 给出 \(n\) 个数,要求每连续 \(m\) 选出至少两个数,求出选出数和的最小值。 思路 定义 \(dp_{i,j}\) 表示考虑前 \(i\) 个人,第 \(i\) 个人和第 \(i-j\) 个人必选的和的最小值。 \[dp_{i,j} = \min_{j+k\le m} \l 阅读全文
posted @ 2024-09-18 19:01 maniubi 阅读(4) 评论(0) 推荐(0) 编辑
摘要:二进制或序列 题意 给出长度为 \(n\) 的序列,任意两个数进行或运算后加入序列。 问进行无数次操作后,序列去重后的长度。 思路 定义 \(f_i\) 表示数 \(i\) 可以被序列中的元素或出的值。 若 \(f_i=i\) 表示 \(i\) 可以被序列中的元素或出来,答案加一。 从小到大枚举每个 阅读全文
posted @ 2024-09-16 17:45 maniubi 阅读(4) 评论(0) 推荐(0) 编辑
摘要:[COCI2021-2022#1] Kamenčići 题意 有一排石头,石头有红色和蓝色。 Alice 和 Bob 轮流从两端取石头,Alice 先手。 谁先去出 \(k\) 块红色石头谁输掉,求出最后谁获胜。 思路 先考虑搜索,记录当前区间,Alice 和 Bob 的红色石头个数,回合数。 再考 阅读全文
posted @ 2024-09-14 08:09 maniubi 阅读(6) 评论(0) 推荐(0) 编辑
摘要:[NOIP 2024 模拟2]数组操作 题意 有 \(n + 2\) 个整数 \(a_0, a_1, . . . , a_n, a_{n+1}\),\(a_0 = a_{n+1} = 0\)。你需要做确切地 \(n\) 次操作,每次数组操作为以下形式: 选择一个整数 \(x\) 满足 \(a_x \ 阅读全文
posted @ 2024-09-12 19:55 maniubi 阅读(6) 评论(0) 推荐(0) 编辑
摘要:[COCI2020-2021#6] Anagramistica 题意 给定 \(n\) 个字符串和正整数 \(k\)。 定义两个字符串相似当且仅当两个字符串排序后相等。 可以从中选出一些字符串,求有多少种方案,使得其中恰好有 \(k\) 对字符串相似。 思路 先将所有字符串排序,相同的归为一类,求出 阅读全文
posted @ 2024-09-11 21:53 maniubi 阅读(5) 评论(0) 推荐(0) 编辑
摘要:[NOIP 2024 模拟1]zyc大吃特吃 题意 给出两个序列 \(a,b\),给出两个数 \(A,B\)。 求最多选出多少个数,使得刚好不满足 \(\sum a_i\le A\) 且 \(\sum b_i\le B\)。 思路 先考虑暴力 dp,定义 \(dp_{i,j}\) 表示选出的数 \( 阅读全文
posted @ 2024-09-11 15:18 maniubi 阅读(4) 评论(0) 推荐(0) 编辑
摘要:[COCI2019-2020#5] Zapina 题意 有 \(n\) 个不同的人和 \(n\) 道不同的题。 第 \(i\) 个人开心当且仅当他被分配到 \(i\) 道题。 求让至少一个人开心的分配方案数。、 思路1 定义 \(dp_{i,j}\) 表示前 \(i\) 个人发 \(j\) 道题,没 阅读全文
posted @ 2024-09-10 21:15 maniubi 阅读(6) 评论(0) 推荐(0) 编辑
摘要:二叉苹果树 题意 给定一棵树,每条边有一个权值。 求留下 \(m\) 条边后与 \(1\) 连通的块内边权和的最大值。 思路 定义 \(dp_{i,j}\) 表示以 \(i\) 为根的子树留下 \(j\) 条边的最大值。 \[dp_{i,j}=\max_{k\in son_i}(dp_{k,t}+d 阅读全文
posted @ 2024-09-09 21:07 maniubi 阅读(2) 评论(0) 推荐(0) 编辑
摘要:洛谷 P6419 [COCI2014-2015#1] Kamp 题意 一颗树 \(n\) 个点,\(n-1\) 条边,经过每条边都要花费一定的时间,任意两个点都是联通的。 有 \(K\) 个人(分布在 \(K\) 个不同的点)要集中到一个点举行聚会。 聚会结束后需要一辆车从举行聚会的这点出发,把这 阅读全文
posted @ 2024-09-06 20:06 maniubi 阅读(9) 评论(0) 推荐(0) 编辑
摘要:洛谷 P5658 [CSP-S2019] 括号树 题意 给定一棵树,每个点有一个括号 ( 或 )。 定义 \(s_i\) 表示 根节点到 \(i\) 每个点的括号组成的序列。 求每个 \(s_i\) 中合法括号子串的个数 \(f_i\)。 思路 定义 \(g_i\) 表示 \(s_i\) 中以 \( 阅读全文
posted @ 2024-09-06 19:45 maniubi 阅读(20) 评论(0) 推荐(0) 编辑