![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
文章平均质量分 86
罗马字母3
这个作者很懒,什么都没留下…
展开
-
数位dp(模板+例题)
文章参考:数位dp之总结首先,什么是数位dp?它是干什么的? 数位dp是一种计数用的dp,一般就是要统计一个区间[le,ri]内满足一些条件数的个数。举个栗子: 加入我们要枚举所有上界不超过231的数,那么我们一般的做法就是:for(int i=le;i<=ri;i++) if(right(i)) ans++; 这里的le和ri分别是0和23...原创 2018-06-20 23:20:06 · 157 阅读 · 0 评论 -
区间dp(模板+例题)
参考博文:区间dp小结(附经典例题) 首先,什么是区间dp?它是干什么的? 先在小区间进行DP得到最优解,然后再利用小区间的最优解合并求大区间的最优解 操作往往涉及到区间合并问题 以上。模板如下://mst(dp,0) 初始化DP数组 for(int i=1;i<=n;i++) { dp[i][i]=初始值 } for(i...原创 2018-06-20 23:49:04 · 619 阅读 · 0 评论 -
01背包
设n个重量为(W1,W2,…Wn)的物品和一个载重为m的背包,每个物品只能选择放或不放,将物品放进背包中的利润是Pi,问背包中物品的利润和的最大值。设f[i][j]表示装前i件物品重量为j的时候的最大利润值转移方程:f[i][j]=max(f[i-1][j],f[i][j-w[i]]+p[i]) 空间压缩之后:f[j]=max(f[j],f[j-w[i]]+p[i])注意f的范围应该...原创 2018-06-18 23:19:58 · 156 阅读 · 0 评论 -
dp刷题板块
Uva1025 题意:这个城市有n个车站,每隔一段时间会从所有车站的一遍发出一列列车,有一个要从第一个车站出发,目的是在时间T会见车站n 的一个人,需要换乘,问在不同车站换成所需要等待的最短时间是多少解法:d(i,j)表示在时刻i,你在j车站所需要等待的最长时间,有三种决策,1. 等一分钟、2. 搭乘往右开的车、3. 搭乘往左开的车#include<cstdio>#in...原创 2018-07-29 20:17:13 · 358 阅读 · 0 评论