70分做法,未过讨论区hack
```cpp
#include <bits/stdc++.h>
using namespace std;
int n,m,k,z[300][300],y[300][300],c[50000],v[50000],h[50000],f[50000],cnt=0;
vector<int>zu[300];
int main()
{
scanf("%d%d%d",&n,&m,&k);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
scanf("%d",&z[i][j]);
char ch=0;
while(ch!='Y'&&ch!='N')ch=getchar();
if(ch=='Y')y[i][j]=1;
else y[i][j]=0;
}
for(int i=0;i<m;i++)
{
int tol=0,d=0,huan=0;
for(int j=n-1;j>=0;j--)
tol+=z[j][i],d++,huan+=y[j][i],c[cnt]=tol,v[cnt]=d,h[cnt]=huan,zu[i].push_back(cnt),cnt++;
}
for(int i=0;i<m;i++)
{
int l=zu[i].size();
for(int j=k;j>=0;j--)
for(int t=0;t<l;t++)
if(j>=v[zu[i][t]])f[j]=max(f[j],f[j-v[zu[i][t]]+h[zu[i][t]]]+c[zu[i][t]]);
}
printf("%d",f[k]);
return 0;
}
```
by w9095 @ 2023-02-12 14:25:11