那你发这个讨论是干什么的
by 览遍千秋 @ 2018-02-18 16:28:02
你好啊。
再见。
by _WA自动机 @ 2018-02-18 19:12:24
@kaiming寻找问题啊
by 卑微的绝望 @ 2018-02-19 09:43:28
我敢保证:发了代码也没人看
#include <iostream>
using namespace std;
int F[65][32050];
struct Node{
int price;
int imp;
int who;
};
Node a[65];
int w[65][3],t[65];
int main(){
int v,n;
cin>>v>>n;
for(int i=1;i<=n;i++){
cin>>a[i].price>>a[i].imp>>a[i].who;
if(a[i].who!=0){
t[a[i].who]++;
w[a[i].who][t[a[i].who]] = i;
}
}
for(int i=1;i<=n;i++){
if(a[i].who != 0){
for(int j=1;j<=v;j++){
F[i][j] = F[i-1][j];
}
continue;
}
if(a[i].who == 0)
for(int j=a[i].price;j<=v;j++){
F[i][j] = max(F[i-1][j],F[i-1][j-a[i].price] + a[i].price * a[i].imp);
if(j >= a[i].price + a[w[i][1]].price && w[i][1] != 0)
F[i][j] = max(max(F[i][j],F[i-1][j]),F[i-1][j - a[i].price - a[w[i][1]].price] +
a[i].price* a[i].imp + a[w[i][1]].imp* a[w[i][1]].price);
if(j>=a[i].price + a[w[i][1]].price + a[w[i][2]].price && w[i][2] != 0 && w[i][1] != 0){
F[i][j] = max(max(F[i][j],F[i-1][j]),F[i-1][j-(a[i].price + a[w[i][1]].price + a[w[i][2]].price)]
+ a[i].price * a[i].imp + a[w[i][1]].price * a[w[i][1]].imp + a[w[i][2]].imp * a[w[i][2]].price);
}
if(j>=a[i].price + a[w[i][2]].price && w[i][2] != 0)
F[i][j] = max(max(F[i-1][j],F[i][j]),F[i-1][j-(a[i].price + a[w[i][2]].price)] +
a[i].price * a[i].imp + a[w[i][2]].imp * a[w[i][2]].price);
}
}
cout<<F[n][v];
return 0;
}
by 卑微的绝望 @ 2018-02-19 09:58:34
就是代码写的不漂亮,洛谷这个文档规划不太好(^=^)
by 卑微的绝望 @ 2018-02-19 09:59:45
@[你好啊,再见](/space/show?uid=22673) 你不用markdown当然没人看
by _King__ @ 2018-08-24 14:52:24