我的奇葩代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
long long zjz[10010];//zjz为总价值
int a[10010],b[10010];//a为价格,b为重要度
int main()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>a[i]>>b[i];
}
for(int i=1;i<=m;i++)
{
b[i]*=a[i];
for(int j=n;j>=a[i];j--)
{
zjz[j]=max(zjz[j-a[i]]+b[i],zjz[j]);
}
}
cout<<zjz[n];
return 0;
}
用01背包做的
(本来是五个点RE,现在好了,改完之后其中两个点WA)