如果不考虑附件,就是一道01背包题。
所以我们就先不考虑附件,把它当作01背包做一下;因为最多只有两个附件,每个物品的状态只有三种(没,有一个,两个),分别当作01背包做一下,即分为4个01背包。然后比较四个背包总的最大值。
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
struct po{
int data,one,two,impor,ju;
}a[61];
int n,m;int f[4][3201][61];
int main()
{
cin>>n>>m;n/=10;memset(f,0,sizeof(f));
for(int i=1;i<=m;++i)
{
a[i].one=0;
a[i].two=0;
}