随笔分类 - dp
摘要:"题目链接" 题意 给定一个字符串$S$,允许修改其中至多$k$个字符变为$T$。 记$T$的反转为$T'$,求$T$与$T'$的最长公共子序列。 "题解" 结论 $T$与$T'$的最长公共子序列的长度 = $T$的最长回文子序列的长度 证明 part. 1 先证:$T$与$T'$的最长公共子序列的
阅读全文
摘要:"A. Points on the line" 题意 给定一条直线上$n$个点,要求去掉最少的点,使得直线上相距最远的两个点的距离$\leq d$. 思路 枚举长度为$d$的区间。 Code "B. Our Tanya is Crying Out Loud" 题意 初始数为$n$,两种操作: 1.
阅读全文
摘要:"A. 坑爹的售票机" 题意 用$1,5,10,25,50,100$的纸币买$n$张单价为$p$的船票,且一次性最多买$k$张,求钱数恰好时最少需要多少张纸币。 Hard: $n,k,p\leq 10^9$ 思路 Easy: dp Hard: dp + 瞎搞 当钱数过大或者张数过多时,(由直觉)其中
阅读全文
摘要:"题目链接" 题意 有 $n$ 个容积无限的水缸,初始时水量为$a_1,a_2,...,a_n$,有一把容积为$k$的勺子,可以从一个水缸中舀水倒入另一个水缸中。问能否给出操作序列,使得最终某一个水缸中水的容量为$V$. 思路 参考 "粉兔" . 结论 首先,如果$\sum_{i=1}^{n}a_i
阅读全文
摘要:"C Candies" 题意 求左上角走到右下角最大的数字和。 思路 直接$dp$ Code include define maxn 110 using namespace std; int a[3][maxn], dp[3][maxn]; typedef long long LL; int mai
阅读全文
摘要:"题目链接" 题意 对于一个长度为$n$的非负整数数列$a_1,a_2,…,a_n$,求$max_{1≤l≤r≤n}f(l,r)$, 其中 $$f(l,r)=min(a_l,a_{l+1},…,a_r)×(a_l+a_{l+1}+⋯+a_r)$$ 思路 显然,最小值必为数列中的某个数,所以题目转化为
阅读全文
摘要:"题目链接" 题意 给定一个字符串(长度$\leq 2e5$),将其划分成尽量少的段,使得每段内重新排列后可以成为一个回文串。 题解 分析 每段内重新排列后是一个回文串$\rightarrow$该段内至多只有一个字符出现过奇数次 考虑 哈希 到一个$26$位的$01$串,出现过奇数次的元素位置上的值
阅读全文
摘要:"题目链接" 题意 将一个升序排好的数列切成若干段,要求每段的长度$\gt k$,对每一段中最大值与最小值的差取个最大值,问这个最大值最小是多少。 思路 二分答案 怎么check呢? dp一下。 表示 一段可以按上述要求进行切割,且 是`i i`的位置(即从头开始到 位置处最远可以切割到的位置),
阅读全文
摘要:"题目链接" 题意 对于一个$01$串,如果其中存在子串$101$,则可以将它变成$010$. 问最多能进行多少次这样的操作。 思路 "官方题解" 转化 倒过来考虑。 考虑,最终得到的串中的$'1'$的 来源 所以,最终的$'1'$对应着最初的串中的 1. $1$ 2. $111...11101$
阅读全文
摘要:"题目链接" 题意 设有N N的方格图(N define maxn 10 using namespace std; typedef long long LL; int a[maxn][maxn], dp[maxn][maxn]; int main() { int n, x, y, k; scanf(
阅读全文
摘要:"1643" 题意 给定若干条线段,问最多可以安排多少条使得没有重合。 思路 贪心,同安排schedule,按结束时间早的排序。 Code "3027" 题意 给定若干条线段,每条线段都有各自的价值,问怎样安排使得不重叠且总价值最大。 思路 dp Code include define inf 0x
阅读全文