博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AtCoder Contest 153 E - Crested Ibis vs Monster(完全背包)
阅读量:3898 次
发布时间:2019-05-23

本文共 382 字,大约阅读时间需要 1 分钟。

【题目】

【题解】

将题目转化成选取一些物体,使得价值总和不小于h的所选物体的最小体积和这样一个完全背包问题,每个物体可以选择多次。

临界值为什么可以是2e4呢?因为我们考虑最坏的情况,就是当h=1e4时,选择很划算的价值x为999的物品*2。

临界值为什么不可以是h+h呢?因为考虑h很小而性价比最高的物体价值很大的情况,比如h=1,物品a的x=10000,y=1.

【代码】 

#include 
using namespace std;const int N=2e4+10;const int INF=0x3f3f3f3f;int dp[N];int main(){ int h,n; scanf("%d%d",&h,&n); memset(dp,INF,sizeof dp); dp[0]=0; for(int i=0;i

 

转载地址:http://uefen.baihongyu.com/

你可能感兴趣的文章
数据结构之图(存储结构、遍历)
查看>>
使用sizeof计算类的大小
查看>>
乐观锁与悲观锁——解决并发问题
查看>>
operator 类型转换及重载
查看>>
HTTP状态码
查看>>
TCP/IP详解--举例明白发送/接收缓冲区、滑动窗口协议之间的关系
查看>>
TCP/IP详解--再次深入理解TCP网络编程中的send和recv
查看>>
TCP与UDP收发的时候TCP有缓冲区还是UDP有缓冲区,使用它们时该注意什么?
查看>>
C++中map、hash_map、unordered_map、unordered_set通俗辨析
查看>>
clone的fork与pthread_create创建线程有何不同&pthread多线程编程的学习小结
查看>>
运算符重载参数的顺序对运算是否有影响
查看>>
什么时候要用虚析构函数?
查看>>
序列化、反序列化与jsoncpp学习
查看>>
同步/异步与阻塞非阻塞的关系
查看>>
epoll模型讲解/源码分析
查看>>
ELF格式与bss段
查看>>
java继承 long和float小记点
查看>>
记录几点在开发中遇到的问题 2015-7-28 (会更新)
查看>>
网银在线的异步操作代码示意图
查看>>
火狐Firefox浏览器安装Selenium_IDE的步骤以及其使用规则
查看>>