【BZOJ 1270】 [BeijingWc2008]雷涛的小猫
来源:互联网 发布:返奖软件 编辑:程序博客网 时间:2024/04/30 08:59
1270: [BeijingWc2008]雷涛的小猫
Time Limit: 50 Sec Memory Limit: 162 MBSubmit: 956 Solved: 457
[Submit][Status]
Description
Input
Output
Sample Input
Sample Output
8
HINT
dp+优化。
dp方程很好想,f[i][j]表示走到第i个柱子高度为j的地方的能获得的最多柿子。
f[i][j]=max(f[i][j-1],f[k][j-d])+v[i][j] (k为任意一根柱子)
发现f[k][j-d]只和j-d有关,和哪根柱子无关,记录ma[h]表示h高度获得的最多柿子。
f[i][j]=max(f[i][j-1],ma[j-d])+v[i][j]
转移就变成O(1)的了。
#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <cstdlib>using namespace std;int n,h,d,v[2005][2005],f[2005][2005],ma[2005];int main(){ scanf("%d%d%d",&n,&h,&d);for (int i=1;i<=n;i++){int x,y;scanf("%d",&x);for (int j=1;j<=x;j++)scanf("%d",&y),v[i][y]++;}int ans=0;for (int i=1;i<=n;i++)for (int j=0;j<d;j++)f[i][h-j]=v[i][h-j]+f[i][h-j+1],ma[h-j]=max(ma[h-j],f[i][h-j]),ans=max(ans,f[i][h-j]);for (int now=h-d;now;now--)for (int i=1;i<=n;i++)f[i][now]=max(f[i][now+1],ma[now+d])+v[i][now],ma[now]=max(ma[now],f[i][now]),ans=max(f[i][now],ans);cout<<ans<<endl;return 0;}
0 0
- [BZOJ 1270][BeijingWc2008]雷涛的小猫
- 【BZOJ 1270】 [BeijingWc2008]雷涛的小猫
- BZOJ 1270: [BeijingWc2008]雷涛的小猫|动态规划
- [DP] BZOJ 1270 [BeijingWc2008]雷涛的小猫
- BZOJ 1270: [BeijingWc2008]雷涛的小猫 傻逼DP
- bzoj 1270: [BeijingWc2008]雷涛的小猫 dp
- 1270: [BeijingWc2008]雷涛的小猫
- 【BZOJ】【P1270】【BeijingWc2008】【雷涛的小猫】【题解】【dp】
- 1270: [BeijingWc2008]雷涛的小猫 (动态规划)
- BZOJ1270: [BeijingWc2008]雷涛的小猫 DP
- BZOJ1270: [BeijingWc2008]雷涛的小猫
- bzoj1270: [BeijingWc2008]雷涛的小猫
- BZOJ1270: [BeijingWc2008]雷涛的小猫 DP
- bzoj1270 [BeijingWc2008]雷涛的小猫(dp)
- bzoj1270: [BeijingWc2008]雷涛的小猫
- bzoj1270: [BeijingWc2008]雷涛的小猫 dp+滚动数组
- bzoj1270 [BeijingWc2008]雷涛的小猫(B站权限题)
- bzoj 1270 雷涛的小猫 DP
- hibernate笔记(二)
- 倒三角笔试题源码
- java中数组与List相互转换的方法
- PowerDesigner中NAME和COMMENT的互相转换,需要执行语句
- UVa156 Ananagrams ACM解题报告(巧妙的map)
- 【BZOJ 1270】 [BeijingWc2008]雷涛的小猫
- ios13
- 【mfc】VC6中正确继续上次项目的做法
- jQuery工作原理解析以及源代码示例
- bbb sdk6编译流程
- 2015年1月27日
- 如何查找可用的google,dropbox等可用IP用于替换hosts
- java多线程之线程状态(2)
- unp卷一 第一章~第六章