
动态规划
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 · 92 阅读 · 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 · 111 阅读 · 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 · 110 阅读 · 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 · 357 阅读 · 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 · 220 阅读 · 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 · 129 阅读 · 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 · 201 阅读 · 0 评论 -
2007 守望者的逃离(线性dp)
链接:https://ac.nowcoder.com/acm/contest/235/Cf[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 · 101 阅读 · 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 · 168 阅读 · 0 评论