入门动态规划 BZOJ 1270 雷涛的小猫

1270: [BeijingWc2008]雷涛的小猫

Time Limit: 50 Sec  Memory Limit: 162 MB
Submit: 1250  Solved: 643
[Submit][Status][Discuss]

Description

 

Input

Output

Sample Input

Sample Output

8

HINT

这个题已经水得不能再水了,然而我还是WA了几次

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 int n,h,d;
 7 int mx[2010],a[2010][5010],dp[2010][5010];
 8 ///dp[i][j]第i颗树高度为j时可以获得的最大值
 9 int ans;
10 int main(){
11     scanf("%d%d%d",&n,&h,&d);
12     int x=0,y=0;
13     for(int i=1;i<=n;i++){
14         scanf("%d", &x);
15         for(int j=1;j<=x;j++){
16             scanf("%d",&y);
17             a[i][y]++;//不一定一个点只有一个
18         }
19     }
20     for(int i=h;i>=1;i--)
21         for(int j=1;j<=n;j++){
22             dp[j][i]=max(dp[j][i+1],mx[i+d])+a[j][i];
23             mx[i]=max(mx[i],dp[j][i]);
24         }
25     for(int i=h;i>=1;i--)
26         for(int j=1;j<=n;j++) ans=max(ans,dp[j][i]);
27     printf("%d\n", ans);
28     return 0;
29 }
时间: 2024-10-27 02:55:53

入门动态规划 BZOJ 1270 雷涛的小猫的相关文章

BZOJ 1270 雷涛的小猫

普及组dp. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define maxn 2050 using namespace std; int n,h,del,x,y,tab[maxn][maxn],mx[maxn*3],f[maxn][maxn],ans=0; int main() { scanf("%d%d%d",&n,&a

bzoj 1270: [BeijingWc2008]雷涛的小猫 简单dp+滚动数组

1270: [BeijingWc2008]雷涛的小猫 Time Limit: 50 Sec  Memory Limit: 162 MB[Submit][Status][Discuss] Description   Input Output Sample Input Sample Output 8 HINT 思路:保存i+z的max值:上一行的dp值: #include<bits/stdc++.h> using namespace std; #define ll __int64 #define

BZOJ 1270: [BeijingWc2008]雷涛的小猫( dp )

简单的dp.. dp(i,j) = max(dp(x,y))+cnt[i][j], (x,y)->(i,j)是合法路径. 设f(i)= max(dp(x,y))(1≤x≤N, 1≤y≤i), g(i,j) = max(dp(i, k))(1≤k≤j) 那么dp(i,j) =  max(f(j+delta), g(i,j+1))+cnt[i][j]. 递推即可. 时间复杂度O(NH) ---------------------------------------------------------

【BZOJ 1270】 [BeijingWc2008]雷涛的小猫

1270: [BeijingWc2008]雷涛的小猫 Time Limit: 50 Sec  Memory Limit: 162 MB Submit: 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

1270: [BeijingWc2008]雷涛的小猫

1270: [BeijingWc2008]雷涛的小猫 Time Limit: 50 Sec  Memory Limit: 162 MBSubmit: 905  Solved: 430[Submit][Status] Description   Input Output Sample Input Sample Output 8 HINT Source 题解:额..这个嘛...首先声明——此程序在BZOJ上交每次都莫名其妙的RE,但是我要到数据后在window下测评怎么测都没出问题,额,求各位也帮我

BZOJ_1270_雷涛的小猫_(动态规划)

描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1270 有n棵树,高度为h.一只猫从任意一棵树的树顶开始,每次在同一棵树上下降1,或者跳到其他树上同时下降d.它经过的地方的果子都会被吃掉,求落地前最多吃多少果子. 分析 高度低的位置的值肯定是由高度高的位置更新得来的.在某一位置,有两种可能: 1.是从这个树上下降1到达这里的. 2.是从其他树上跳来的.由于可以从任意树上跳来,所有选之前吃果子最多的树. 用dp1[i][j]表示到达第i棵树,

[BeijingWc2008][BZOJ1270] 雷涛的小猫|动态规划

1270: [BeijingWc2008]雷涛的小猫 Time Limit: 50 Sec  Memory Limit: 162 MBSubmit: 1002  Solved: 481[Submit][Status][Discuss] Description   Input Output Sample Input Sample Output 8 HINT Source 唉……第一遍写了个超暴力dp直接跑完了50s. f1,f2分别表示 高度为i的最大值,当前高度在第i棵上最大值. #includ

upc 9367 雷涛的小猫

问题 B: [动态规划]雷涛的小猫 时间限制: 1 Sec  内存限制: 128 MB提交: 161  解决: 49[提交] [状态] [讨论版] [命题人:admin] 题目描述 雷涛的小猫雷涛同学非常的有爱心,在他的宿舍里,养着一只因为受伤被救助的小猫(当然,这样的行为是违反学生宿舍管理条例的).   在他的照顾下,小猫很快恢复了健康,并且愈发的活泼可爱了.可是有一天,雷涛下课回到寝室,却发现小猫不见了!经过一番寻找,才发现她正趴在阳台上对窗外的柿子树发呆…在北京大学的校园里,有许多柿子树,

NOI题库2454 雷涛的小猫

2454:雷涛的小猫 总时间限制: 20000ms 单个测试点时间限制: 10000ms 内存限制: 65536kB 描述 雷涛同学非常的有爱心,在他的宿舍里,养着一只因为受伤被救助的小猫(当然,这样的行为是违反学生宿舍管理条例的).在他的照顾下,小猫很快恢复了健康,并且愈发的活泼可爱了. 可是有一天,雷涛下课回到寝室,却发现小猫不见了!经过一番寻找,才发现她正趴在阳台上对窗外的柿子树发呆… 在北京大学的校园里,有许多柿子树,在雷涛所在的宿舍楼前,就有N棵.并且这N棵柿子树每棵的高度都是H.冬天