不知道为什么,写完发现错了,对了对题解发现没啥问题
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=2010;
int f[N][N],d[N][N],p[N][N*3];
int n,m,h,m1;
int max1[N];
int main()
{
scanf("%d %d %d",&n,&m,&h);
for(int i=1;i<=n;i++)
{
scanf("%d",&d[i][0]);
for(int j=1;j<=d[i][0];j++)
scanf("%d",&d[i][j]),p[i][d[i][j]]++;
}
for(int k=m;k>=0;k--)
{
for(int i=1;i<=n;i++)
{
f[i][k]=f[i][k+1]+p[i][k];
f[i][k]=max(f[i][k],max1[k+h]+p[i][k]);
max1[k]=max(max1[k],f[i][k]);
m1=max(m,f[i][k]);
}
}
printf("%d",m1);
return 0;
}