迷之全WA

P1064 [NOIP2006 提高组] 金明的预算方案

@[Grace25](/user/359883) 我把我的代码发给你吧 ```c #include <bits/stdc++.h> using namespace std; const int maxn = 3.2 * 1e4 + 10; int n,m,V,p,q,v[100],w[100],fw[100][5],fv[100][5],dp[maxn]; int main() { scanf("%d%d",&n,&m); for(int i = 1;i <= m;i++) { scanf("%d%d%d",&V,&p,&q); if(q == 0) { v[i] = p * V; w[i] = V; } else { fv[q][0]++; fv[q][fv[q][0]] = V * p; fw[q][fv[q][0]] = V; } } for(int i = 1;i <= m;i++) { for(int j = n;j >= w[i];j--) { dp[j] = max(dp[j],dp[j - w[i]] + v[i]); if(j >= w[i] + fw[i][1]) dp[j] = max(dp[j],dp[j - w[i] - fw[i][1]] + v[i] + fv[i][1]); if(j >= w[i] + fw[i][2]) dp[j] = max(dp[j],dp[j - w[i] - fw[i][2]] + v[i] + fv[i][2]); if(j >= w[i] + fw[i][1] + fw[i][2]) dp[j] = max(dp[j],dp[j - w[i] - fw[i][1] - fw[i][2]] + v[i] + fv[i][1] + fv[i][2]); } } printf("%d",dp[n]); return 0; } ```
by 旭日临窗 @ 2020-10-31 18:36:51


|