poj 3453:雷涛的小猫

来源:互联网 发布:秋冬水乳推荐 知乎 编辑:程序博客网 时间:2024/04/30 10:11

解题思路:

(1)动态规划

(2)慎用库函数

(3)scanf

#include<iostream>#include<cstring>#include<stdio.h> using namespace std;int tree[2010][2010]; int maxNum[2010];//记录某高度所能得到的最大值 int N,H,delta;int main(){memset(tree,0,sizeof(tree));memset(maxNum,0,sizeof(maxNum));scanf("%d%d%d",&N,&H,&delta);for(int i=1;i<=N;i++){int m,l;scanf("%d",&m);for(int j=1;j<=m;j++){scanf("%d",&l);tree[i][l]++;}}for(int j=H;j>=1;j--){for(int i=1;i<=N;i++){int preNum = tree[i][j+1];if(j+delta<=H && maxNum[j+delta]>preNum)preNum = maxNum[j+delta];tree[i][j] += preNum; if(tree[i][j]>maxNum[j])//更新高度为j时的最大值maxNum[j] = tree[i][j]; }}int ans = 0;for(int i=1;i<=N;i++)if(tree[i][1]>ans)ans = tree[i][1];printf("%d\n",ans);return 0;}


0 0
原创粉丝点击