哪里错了,求调,第1人关注(样例都没过)QAQ
查看原帖
哪里错了,求调,第1人关注(样例都没过)QAQ
806720
sea_water楼主2024/1/20 21:15
#include<bits/stdc++.h>
using namespace std;
int dp[2005][5005];
int a[2005][5005];
int n,h,d,ans;
int main(){
	cin>>n>>h>>d;
	for(int i=1;i<=n;i++){
		int x;
		cin>>x;
		while(x--){
			int y;
			cin>>y;
			a[i][y]++;
		}
	}
	for(int i=h;i>=1;i--){
		int ll=0;
		if(i+d<=h){
			for(int j=1;j<=n;j++){
				ll=max(dp[i+d][j]+a[i][j],ll);
			}
		}
		if(i!=h){
		for(int j=1;j<=n;j++){
			dp[i][j]=max(dp[i+1][j]+a[i][j],ll+a[i][j]);
		}
	}
	    else{
	    	for(int j=1;j<=n;j++){
	    		dp[i][j]=a[i][j];
			}
		}
	}
	for(int i=1;i<=n;i++){
		ans=max(dp[h][i],ans);
	}
	cout<<ans;
}
2024/1/20 21:15
加载中...