首页 > 其他分享 >Educational DP Contest E - Knapsack 2 (01背包)

Educational DP Contest E - Knapsack 2 (01背包)

时间:2022-12-22 22:23:02浏览次数:52  
标签:Educational 01 Contest LL cin 背包 物品

https://atcoder.jp/contests/dp/tasks/dp_e

题目大意:

有N个物品,编号为1,2,…,N。对于每个i (1≤i≤N),物品I的权重为wi,价值为vi。

Taro决定从N件物品中挑选一些,用背包带回家。背包的容量是W,这意味着所带物品的重量之和必须至多为W(<=W)。

找出Taro带回家的物品价值的最大可能总和。

【注意范围】1≤N≤100 ; 1≤W≤10^9 ; 1≤wi≤W ; 1≤vi≤10^3
Sample Input 1  
3 8
3 30
4 50
5 60
Sample Output 1  
90
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1e18;
const LL N=200200,M=2002;
LL n,m;
LL w[N],v[N],f[N];
int main()
{
    cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
    LL T=1;
    //cin>>T;
    while(T--)
    {
        cin>>n>>m;
        for(LL i=1;i<=n;i++)
        {
            cin>>w[i]>>v[i];
        }
        for(LL i=1;i<=N;i++)
        {
            f[i]=MAXN;
        }
        for(LL i=1;i<=n;i++)
        {
            //n的最大取值为100,单个价值最大为1000,总和不超过1e5
            for(LL j=1e5;j>=v[i];j--)
            {
                //如果带上了这个物品我们的总数都会更小的话,那就说明有用
                f[j]=min(f[j],f[j-v[i]]+w[i]);
            }
        }
        LL maxn=0;
        for(LL j=1;j<=1e5;j++)
        {
            //在有效值范围内取最大
            if(f[j]<=m) maxn=max(maxn,j);
        }
        cout<<maxn<<endl;
    }
    return 0;
}

标签:Educational,01,Contest,LL,cin,背包,物品
From: https://www.cnblogs.com/Vivian-0918/p/16999719.html

相关文章

  • [BJOI2019]勘破神机
    题目描述定义\(f_n\)为用\(1\times2\)骨牌填满\(2\timesn\)网格的方案数,\(g_n\)为填满\(3\timesn\)网格的方案数。求:\[\frac{1}{r-l+1}\sum_{i=l}^rC_{f_i}^k/\frac{......
  • Educational Codeforces Round 139 D. Lucky Chains
    LuckyChains题面翻译给定两个数·a,b,(a,b给到了1e7)执行如下语句:while(gcd(a,b)==1)a++,b++,cnt++;求出cnt的值。样例#1样例输入#145151337891......
  • [LeetCode]011-盛最多水的容器
    >>>传送门题目给定一个长度为n的整数数组 height 。有 n 条垂线,第i条线的两个端点是 (i,0) 和 (i,height[i]) 。找出其中的两条线,使得它们与 x 轴共同......
  • 200014 计算梁的箍筋根数已知长高和加密区非加密区
    点击查看代码<?phpheader('Content-Type:text/html;charset=utf-8');define('ROOT',$_SERVER['DOCUMENT_ROOT']);includeROOT.'/assets/php/head.php';$tit='......
  • Aphche 换行解析漏洞(CVE-2017-15715)
    一:原理apache-CVE-2017-15715的出现是由于apache在修复第一个后缀名解析漏洞时,使用正则表达式匹配后缀,在解析php时xxx.php\x0A将被php后缀进行解析,导致绕过一些服务器......
  • typescript_01搭建环境
    typescript是什么?以JavaScript为基础构建的语言,可以在任何支持JavaScript的平台中执行,ts不能被js解析器直接执行需要先编译成js文件,ts是一个js的超集,拓展了js并添加了类型......
  • SQL Server 2019 常用数据类型
    SQLServer2019常用数据类型一、常用数据类型一般存储数据就是两种:数字和字符串数字分为整形和浮点型,根据精度和范围又可以细分字符串分为定长和不定长字符串,根据长......
  • 梦断代码读书笔记01
    看到这本书的封面就给我一种气势磅礴的感觉——两打程序员,三年时间,4732个bug,只为打造超卓软件。看起来像是要搞一个多么伟大的工程一样,没看这本书之前,倒是对这本书有一些了......
  • SQL Server 2019 数据类型timestamp和datetime2的区别
    SQLServer2019数据类型timestamp和datetime2的区别一、数据类型timestamp数据类型:timestamp的值是二进制数。在插入或更新数据时,自动添加timestamp值,而且还是唯一的......
  • SQL Server 2019 登录名 和 数据库用户
    SQLServer2019登录名和数据库用户一、登录名1-1新建登录名登录名是用来登录SQLServer,能登录SQLServer不一定能访问数据库通过超级管理员账户sa创建普通登录......