【背包基础题】洛谷P1048/P1060

P1048

#include
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<

P1060

#include
#include
#include
#include
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<

你可能感兴趣的:(题)