
动态规划
coder370
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数位dp
3555 Bomb 输出含49的数有几个 #include <cstdio> #include <cstring> using namespace std ; typedef long long ll ; const int N = 20 ; ll digit[20] , dp[N][2] ; ll dfs(int len , bool is4 , bool limit...原创 2020-08-08 19:47:12 · 99 阅读 · 0 评论 -
区间dp
区间dp 石子合并 两堆石子的合并: 例如:dp[1][2] = dp[1][1] + dp[2][2] + sum[1][2]; 总结:dp[i][i+1] = dp[i][i] + dp[i+1][i+1] + sum[i][i+1]; 三堆石子的合并: dp[1][3] = min(dp[1][1]+dp[2][3],dp[1][2]+dp[3][3])+sum[1][3]; 总结:dp[i...原创 2020-01-09 22:40:49 · 118 阅读 · 0 评论 -
洛谷普及场(更要技巧的动规与记忆化)
P1064 金明的预算方案 有依赖(分组)的背包问题,主件可以单独买,可以和一个附件,两个附件,依次判断即可 #include <cstdio> #include <algorithm> #include <vector> using namespace std ; const int N = 65 ; const int M = 32010 ; p...原创 2019-10-13 23:37:53 · 117 阅读 · 0 评论 -
洛谷普及场 (多维动态规划)
洛谷普及场 (多维动态规划) - P1508 Likecloud-吃、吃、吃 简单dp,注意是从矩阵的中间下方开始吃 #include <cstdio> #include <algorithm> using namespace std ; const int N = 205 ; int f[N][N] , dp[N][N] ; int m , n ; int main...原创 2019-09-29 22:15:28 · 374 阅读 · 0 评论 -
洛谷p1004方格取数
用一个四维数组来记录,dp[i][j][k][l] , 第一个人走到i,j取得的最大值, 第二个人走到k,l取到的最大值 #include <cstdio> #include <algorithm> using namespace std ; const int N = 15 ; int maze[N][N] ; int dp[N][N][N][N] ; int n ...原创 2019-09-28 17:45:34 · 225 阅读 · 0 评论 -
洛谷P1280 尼克的任务(线性dp)
解:以工作开始的时间为关键字降序排序,从后面开始dp,若没有任务,则当前休息时间为后面加1(dp[i] = dp[i+1] + 1) 若有任务,则取当前dp和工作之后的dp比较取较大的,即 (if(dp[i+work[num].t]>dp[i]) dp[i]=dp[i+work[num].t]; ) #include <cstdio> #include <...原创 2019-09-22 20:37:52 · 131 阅读 · 0 评论 -
环形石子的合并
之前的石子合并是一排的,这里是环的要将环拆成链,复制一份接在后面 #include <cstdio> #include <algorithm> using namespace std ; const int N = 210 ; const int INF = 0x7fffffff/2 ; int a[N] , sum[N] ; int f[N][N] , g[N][N] ;...原创 2019-09-22 20:36:04 · 212 阅读 · 0 评论 -
2007 守望者的逃离(线性dp)
链接:https://ac.nowcoder.com/acm/contest/235/C f[i] 表示在第i秒能跑到多远,先算出只放技能每秒能跑多远,再用跑步的方式“插缝”,即f[i] = max(f[i],f[i-1]-17) ; #include <cstdio> #include <algorithm> using namespace std ; const int...原创 2019-09-22 19:01:13 · 108 阅读 · 0 评论 -
洛谷P1140 相似碱基
洛谷P1140 相似碱基 dp[i][j] 表示a的前i个碱基和b的前j个碱基的最大相似程度 先提前打表表示碱基之间的配对,将输入的字符串转化成碱基索引的下标 (关键代码段)状态转移方程: for (int i = 1 ; i < alen ; ++i){ for (int j = 1 ; j < blen ; ++j){ dp[i][j] = dp[i-1][...原创 2019-09-22 17:38:54 · 173 阅读 · 0 评论