dp
细数风雨
这个作者很懒,什么都没留下…
展开
-
K - Safe Racing Gym - 101490K
问你一个圈形赛道每隔s米至少有一个booth,问你一共有多少种方法设置这个赛道。dp数组的定义就是长度为i的赛道长度,首尾都放booth有多少种放法。因为首尾都放所以可以通过前面几项来推出这一项,也就是到尾部booth的旗子的前一个booth应该和尾部booth最多间隔s个单位,所以也就有dp[i-1] + dp[i - 2] + … + dp[max(0, i - s)], 这样直接每项每项算...原创 2020-01-11 20:37:10 · 227 阅读 · 0 评论 -
P1220 关路灯区间dp
做了不少dp,这个题一眼就看出是区间dp来了,不过推了一段时间发现不知道怎么推出状态,最后还是看了题解。这个题是从一个区间的左右两边向这个区间来推。详细解释看代码吧// let me get FY#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>...原创 2019-08-20 20:26:13 · 184 阅读 · 0 评论 -
P1064 金明的预算方案, 依赖背包
金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过NN元钱就行”。今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子:主件 附件电脑 打印机,扫描仪书柜 图书书桌 台灯,文具工作椅 无如果要买归...原创 2019-08-27 15:17:42 · 117 阅读 · 0 评论 -
P1880 [NOI1995]石子合并----区间dp
题目描述在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分.输入格式数据的第1行试正整数N,1≤N≤100,表示有N堆石子.第2行有N个数,分别表示每堆石子的个数.输出格式输出共2行,第1行为最小得分,第2行为最大得分.题...原创 2019-08-27 20:50:26 · 175 阅读 · 0 评论 -
Gym - 101652W
蓝色左上只能是蓝色,红色右下只能是红色。其实只要考虑一种就可以了,因为考虑了一种颜色 ,另一种就会和他叠起来。‘#include<cstring>#include<cstdio>using namespace std;typedef long long ll;char s[40][40];ll dp[40][40];int a[40][40];int n...原创 2019-09-07 20:32:18 · 208 阅读 · 0 评论