随笔分类 -  dp

摘要:https://acm.hdu.edu.cn/showproblem.php?pid=7055 ##思路1 考虑dp结果,dp[i]表示以i为结尾的答案 每次新进入一个字符,计算其对答案产生的贡献 char s[maxn]; int t, cnt[30], sum[30]; ll dp[maxn]; 阅读全文
posted @ 2021-08-10 21:35 naymi 阅读(146) 评论(1) 推荐(0)
摘要:https://codeforces.com/contest/1557/problem/D 线段树维护dp + dp路径记录 + 离散化 考虑最多能保留的个数,线段树维护相邻两层间转移的1的位置的最大值. 对每层考虑,新加进来一个线段,都会产生一个非负的贡献,每次转移都要询问这一层能向上转移的每个点 阅读全文
posted @ 2021-08-10 21:16 naymi 阅读(53) 评论(0) 推荐(0)
摘要:https://acm.hdu.edu.cn/showproblem.php?pid=6998 考虑每次操作能对答案产生的影响 记每次操作为$swap(a,b)$,dp[i]表示答案,初始化位-1表示状态不可达,开始时dp[k] = 0. a不可达 b可达 dp[v] = dp[u], dp[u] 阅读全文
posted @ 2021-08-06 21:58 naymi 阅读(96) 评论(0) 推荐(0)
摘要:https://codeforces.com/contest/1168/problem/C 考虑$dp$,$dp[i][j]$表示从i开始最先到达的第j位为1的位置 如果$a[x]$能转移到$a[y]$那么必定有一位二进制位置上,\(dp[x][k]<=y\) $dp$转移:从$n$向$1$枚举$i 阅读全文
posted @ 2021-08-06 21:33 naymi 阅读(34) 评论(0) 推荐(0)