1. 程式人生 > >bzoj1270 BeijingWc2008 雷濤的小貓 DP

bzoj1270 BeijingWc2008 雷濤的小貓 DP

.com main bzoj wc2008 ace sin printf namespace blog

題目鏈接:http://www.lydsy.com/JudgeOnline/problem.php?id=1270

比較水的一道dp

f1[i]為高度為i的時候的最大值 f2[i]為當前高度在第i棵樹上的最大值

//bzoj1270 雷濤的小貓 dp 
#include<bits/stdc++.h>
using namespace std;
int f1[5005],f2[5005];
int mp[5005][5005];
int n,h,d;
int main(){
    scanf("%d%d%d",&n,&h,&d);
    int x,y;
    
for(int i=1;i<=n;i++){ scanf("%d",&x); for(int j=1;j<=x;j++){ scanf("%d",&y); mp[i][y]++; } } for(int i=h;i>=1;i--){ int t=(i+d)<=h?f1[i+d]:0; for(int j=1;j<=n;j++){ f2[j]=max(f2[j],t)+mp[j][i]; f1[i]
=max(f1[i],f2[j]); } } printf("%d",f1[1]); } /* 3 10 2 3 1 4 10 6 3 5 9 7 8 9 5 4 5 3 6 9 */

bzoj1270 BeijingWc2008 雷濤的小貓 DP