
dp
loi__wzhd
这个作者很懒,什么都没留下…
展开
-
免费馅饼(棋盘dp)
第一轮C2组B题题目:输入输出:样例【考查内容】棋盘dp【难度】易【题意】众所周知,天上会掉馅饼(据说还很好吃),但是掉落的位置只有0~10,你的速度为每秒1格,且你的起始位置为5,每秒钟在某个位置会落下1个或多个馅饼,问你最多能接到多少个馅饼。【思路】把时间看做是层,每个位置在某个时间掉落的馅饼数记做数字,类似于数字三角形,但是由于刚开始有些位置跑不到即有些位置的数字是无效的,我们选择倒着跑,最后输出终点为5的路径【代码实现】#include<iostream>#in原创 2021-08-08 11:37:35 · 133 阅读 · 0 评论 -
混合背包
http://codevs.cn/problem/3269/#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int n,m,dp[200005],v[200005],w[200005],num[200005];int main(){ scanf("原创 2017-09-27 21:15:01 · 212 阅读 · 0 评论 -
没有上司的舞会(树形dp裸题)
题目 >>http://codevs.cn/problem/1380/#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int MAXN = 2e5;bool used[MAXN];int n,a,b,num[MAXN],s,firs[MAXN]原创 2017-08-20 14:52:44 · 375 阅读 · 0 评论 -
【玉蟾宫】codevs 2491
题目>>http://codevs.cn/problem/2491/#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int m,n,map[1005][1005],dp[1005][1005],h,ans = 0;char s[233];int main(原创 2017-08-20 14:43:44 · 296 阅读 · 0 评论 -
codevs 1966 乘法游戏
有时候错误比正确更有价值。说一说我的错误,我先是分了四种情况: ①dp[i][k] + dp[k+1][j]/num[k]*num[i-1], ②dp[i][k-1]/num[k]*num[j+1] + dp[k][j]), ③dp[k+1][j] + dp[i][k]/num[k+1]*num[j+1], ④dp[k][j]/num[k-1]*num[i-1] +原创 2017-09-28 13:24:00 · 268 阅读 · 0 评论 -
石子合并与乘积最大之区别
我们在做石子归并时,会枚举区间(包括起点和终点),枚举断点。O(n^3)因为合并的顺序不同会产生不同的结果,所以石子归并不能规定最后一个合并的对象,故枚举断点,将左边合并的结果与右边合并的结果合并完了以后,再将我们所枚举的断点作为最后一个合并的对象。而且我们合并的时候,需要右边的合并结果。所以我们要把右边的小区间先处理掉。处理的方法一般有两种:1 :枚举起点时倒着枚举,确保右边的区间是处理完的。2原创 2017-11-04 09:57:33 · 361 阅读 · 0 评论 -
数位dp裸题的套路
首先根据题目的要求初始化一般为:for(int i = 0;i <= 1;i ++) dp[1][i] = 1;for(int i = 1;i <= 最大数的位数;i ++) for(int j = 0;j <= 9;j ++) for(int k = 0;k <= 9;k ++) if(......)//题目要求 d原创 2017-11-04 10:23:40 · 378 阅读 · 0 评论