提交时间:2023-12-02 09:57:50

运行 ID: 113351

#include<iostream> #include<string> using namespace std; const int N = 610, M = 60010; int m, t, n, f[M][M], v[N], w1[N], w2[N]; string s; int main(){ cin >> n >> m >> t; for(int i = 1; i <= n; i++){ cin >> s; for(int j = 0; j < s.size(); j++){ if(s[j] == '0'){ w1[i]++; } else{ w2[i]++; } } v[i] = 1; } for(int i = 1; i <= n; i++){ for(int j = m; j >= 0; j--){ for(int k = t; k >= 0; k--){ if(j >= w1[i] && k >= w2[i]){ f[j][k] = max(f[j][k], f[j-w1[i]][k-w2[i]] + v[i]); } } } } cout << f[m][t]; return 0; }