zoukankan      html  css  js  c++  java
  • 5倍经验日

    洛谷P1802 5倍经验日

    简单的背包,因为输了也有经验,所以预处理求和,f[i]+=sum,并在此基础上01背包,c[i]为差值,注意赋值时,i0开始,背包的声韵体积可以为0.

    #include<bits/stdc++.h>
    #define inf 99999999
    using namespace std;
    void in(long long &x)
    {
        long long y=1;
        char c=getchar();x=0;
        while(c<'0'||c>'9')
        {
            if(c=='-')
            y=-1;
            c=getchar();
        }
        while(c<='9'&&c>='0')x=x*10+c-'0',c=getchar();
        x*=y;
    }
    long long n,v;
    long long f[1010],c[1010],w[1010];
    long long sum;
    
    int main()
    {
       in(n),in(v);
       long long x,y;
       for(long long i=1;i<=n;i++)
         {
             in(x),in(y),in(w[i]);
             sum+=x;
             if(y<x)
             {
                 c[i]=0;
                 w[i]=inf;
             }
             else
             c[i]=y-x;
         }
         for(long long i=0;i<=v;i++)
          {
              f[i]=sum;
          }
      for(long long i=1;i<=n;i++)
         for(long long j=v;j>=w[i];j--)
           f[j]=max(f[j],f[j-w[i]]+c[i]);
      cout<<f[v]*5;
      return 0;
    }
  • 相关阅读:
    NCBI SRA数据库使用详解
    自相关分析
    RandomAccessFile java
    手动安装R包
    ubuntu 设置环境变量
    Shell:Day09-2.笔记
    Shell:Day09.笔记
    Shell:Day08.笔记
    Shell:Day07.笔记
    Shell:Day06.笔记
  • 原文地址:https://www.cnblogs.com/war1111/p/7388356.html
Copyright © 2011-2022 走看看