P1048
#include<bits/stdc++.h>
using namespace std;
int timee,n;
int f[1001];
int c[1001];
int w[1001];
int main()
{
cin>>timee>>n;
memset(f,0,sizeof(f));
for(int i=1;i<=n;i++)
{
cin>>c[i]>>w[i];
}
for(int i=1;i<=n;i++)
{
for(int j=timee;j>=1;j--)
{
if((f[j]<=(f[j-c[i]]+w[i]))&&j-c[i]>=0)//f[j]<=(f[j-c[i]]+w[i])查看影响,考虑性价比
f[j]=f[j-c[i]]+w[i];
}
}
cout<<f[timee]<<endl;
}
P1060
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<string.h>
using namespace std;
#define ll long long
ll timee,n;
int f[30005];
ll c[300];
ll w[300];
int main()
{
cin>>timee>>n;
memset(f,0,sizeof(f));
memset(c,0,sizeof(c));
memset(w,0,sizeof(w));
for(int i=1;i<=n;i++)
{
cin>>c[i]>>w[i];
w[i]*=c[i];
}
for(int i=1;i<=n;i++)
{
for(int j=timee;j>=c[i];j--)//刚开始用的j>=1然后runtime error了
{
if((f[j]<=(f[j-c[i]]+w[i]))&&j-c[i]>=0)
f[j]=f[j-c[i]]+w[i];
}
}
cout<<f[timee]<<endl;
}