怎么做

学术版

背包
by songyihang @ 2019-05-20 13:54:24


``` int n,T,m[101],s[101],c[101][101],g[101][101],ans,f[201]; int main() { cin>>n>>T; for(int i=1;i<=n;i++) { cin>>m[i]>>s[i]; for(int j=1;j<=m[i];j++) cin>>c[i][j]>>g[i][j]; } for(int i=1;i<=n;i++) { for(int j=1;j<=m[i];j++) { if(s[i]==0) { for(int k=0;k<=) } } } cout<<; return 0; } ```
by Donald_J_Trump @ 2019-05-20 13:55:39


状态转移方程f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]} 方程之中,现在需要放置的是第i件物品,这件物品的体积是c[i],价值是w[i],因此f[i-1][v]代表的就是不将这件物品放入背包,而f[i-1][v-c[i]]+w[i]则是代表将第i件放入背包之后的总价值,比较两者的价值,得出最大的价值存入现在的背包之中。
by songyihang @ 2019-05-20 13:55:39


中间不知道怎么办
by Donald_J_Trump @ 2019-05-20 13:56:00


循环每一个集,比对时间还够不够,假如够就选出快乐最高的做
by songyihang @ 2019-05-20 14:08:22


|