谁知到这个代码的处理奇货的时候的循环第3层,为什么k 从 j 到 0 就会wa啊
```cpp
#include<iostream>
#include<cstdio>
#define maxn 10010
#define ll long long
using namespace std;
int n, t, m, cnt;
int f[maxn];
inline void read(int &x){
x = 0; int f = 1; char c = getchar();
while(c < '0' || c > '9'){
if(c == '-') f = -1;
c = getchar();
}
while(c >= '0' && c <= '9'){
x = x * 10 + c - '0';
c = getchar();
}
x *= f;
}
inline int max(int x, int y){
return x > y ? x : y;
}
int main(){
read(n); read(t); read(m);
for(int i = 1; i <= n; i++){
int w, c, p; read(w); read(c); read(p);
if(p * w > m){
for(int j = w; j <= m; j++)
f[j] = max(f[j], f[j - w] + c);
continue;
}
for(int j = 1; j <= p; j <<= 1){
for(int k = m; k >= w * j; --k)
f[k] = max(f[k], f[k - w * j] + c * j);
p -= j;
}
if(p > 0)
for(int k = m; k >= w * p; --k)
f[k] = max(f[k], f[k - w * p] + c * p);
}
for(int i = 1; i <= t; i++){
int x, y, z; read(x); read(y); read(z);
for(int j = m; j >= 0; j--)
for(int k = 0; k <= j; k++)
f[j] = max(f[j], f[j - k] + (x * k + y) * k + z);
}
cout << f[m];
return 0;
}
```
我收回随便A的话
by DDOSvoid @ 2018-01-21 21:42:00
@[DDOSvoid](/space/show?uid=34531) 数据量最大的点已经调整为2s
by yjjr @ 2018-01-22 10:27:09