[洛谷P2370]yyy2015c01的U盘
题目大意:有n个文件,每个文件有一个大小和价值,有一个容量为s的U盘,要装这些文件。传输文件需要接口,一个大小为k的接口能传输的最大文件的大小为k。问最少要多大的接口,才能使传输的文件价值$\ge p$( 具体见原题)。
解题思路:二分接口的大小,对于每个二分出的答案,做一次背包问题(如果一个文件的大小大于接口的大小,则直接跳过该文件),判断最大价值是否$\ge p$。最后的结果就是答案。在二分时,我们把r设为s+1,如果最后二分得到的答案为s,说明没有答案,输出“No Solution!”。
C++ Code:
- #include<cstdio>
- #include<cstring>
- using namespace std;
- int n,p,s;
- int v[1005],w[1005],f[1005];
- bool dp(int k){
- memset(f,0,sizeof f);
- for(int i=1;i<=n;++i)
- if(v[i]<=k)
- for(int j=s;j>=v[i];--j)
- if(f[j]<f[j-v[i]]+w[i])f[j]=f[j-v[i]]+w[i];
- return f[s]>=p;
- }
- int main(){
- scanf("%d%d%d",&n,&p,&s);
- for(int i=1;i<=n;++i)scanf("%d%d",&v[i],&w[i]);
- int l=0,r=s+1;
- while(l<r){
- int mid=l+r>>1;
- if(dp(mid))r=mid;else
- l=mid+1;
- }
- if(l>s)puts("No Solution!");else
- printf("%d\n",l);
- return 0;
- }
[洛谷P2370]yyy2015c01的U盘的更多相关文章
- 洛谷 P2370 yyy2015c01的U盘
题目传送门 解题思路: 先将每个文件按照占空间从小到大排序,然后跑背包,当到了某一个文件时,价值够了,那么当前文件的体积就是答案. 其实本题是可以二分答案的,但是写挂了... AC代码: #inclu ...
- P2370 yyy2015c01的U盘
P2370 yyy2015c01的U盘 题目背景 在2020年的某一天,我们的yyy2015c01买了个高端U盘. 题目描述 你找yyy2015c01借到了这个高端的U盘,拷贝一些重要资料,但是你发现 ...
- 洛谷 P2370 P2370 yyy2015c01的U盘
https://www.luogu.org/problemnew/show/P2370 二分+背包 #include <algorithm> #include <iostream&g ...
- 洛谷 P2372 yyy2015c01挑战算周长
P2372 yyy2015c01挑战算周长 题目背景 yyy2015c01快速的解决了问题,受到邻居们的赞许,高兴的回到家,把糖给了妈妈,吃了香喷喷的午饭,又睡了一个甜甜的午觉,感觉人生真美好.下午爸 ...
- P2370 yyy2015c01的U盘(二分+背包)
思路:先说一下题意吧.就是给你n个文件大小为v,价值为c, 但是硬盘的大小为S, 而且要存的总价值大于等于p.问每次传输k大小的文件.问k的最大值是多少? 我们以k为二分对象. 直接讲检验函数吧. 假 ...
- 洛谷p2370yyy2015c01的U盘题解
没什么特殊的想法 就是看自己很久没有更新关于题解类的文章了而已 (其实这是我好久之前做的, 只是把它从洛谷博客搬到了这里而已) 题目 首先分析题目要二分 他长成这个亚子太二分了 所以就要二分 最好是先 ...
- 【洛谷P1352】没有上司的舞会
[洛谷P1352]没有上司的舞会 x舷售 锚」翅θ 但是 拙臃 蓄ⅶ榔 暄条熨卫 翘ヴ馇 表现无愧于雪月工作室的核心管理 爸惚扎掬 颇瓶 芟缆肝 貌痉了 洵┭笫装 嗝◇裴腋 褓劂埭 ...
- 洛谷 P2835 刻录光盘
题目链接 https://www.luogu.org/problemnew/show/P2835 题目描述 在JSOI2005夏令营快要结束的时候,很多营员提出来要把整个夏令营期间的资料刻录成一张光盘 ...
- 【洛谷】P2880 [USACO07JAN]平衡的阵容Balanced Lineup(st表)
题目背景 题目描述: 每天,农夫 John 的N(1 <= N <= 50,000)头牛总是按同一序列排队. 有一天, John 决定让一些牛们玩一场飞盘比赛. 他准备找一群在对列中为置连 ...
随机推荐
- day09-3 数据类型总结,深浅拷贝
目录 数据类型总结,深浅拷贝 存一个值还是多个值 有序 or 无序 可变 or 不可变 浅拷贝和深拷贝的区别(只针对可变类型) 1.拷贝: 3.深拷贝 总结: 数据类型总结,深浅拷贝 存一个值还是多个 ...
- Eclipse本地创建新的GIT分支,并推送至远程Git分支
本地创建新的GIT分支: 1.右击要创建新分支的项目——Team——Switch To——New Branch…: 2.在弹出的对话框中name框中输入要创建的分支名称,(如果是当前显示的要拷贝的分支 ...
- vue封装http请求
import axios from 'axios' import isObject from 'lodash/isObject' const http = function (api, data = ...
- luogu p1004
P1004 题意 类似一个比较小的方格(N<=9),有的点是0,有的点有数, A->B的路径经过的点加上该点代表的数,求两次A->B的最大解(最优解) 一个令人恼的问题是两条路径如果 ...
- JS table分页
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="paging3.aspx.c ...
- 《Exception》第八次团队作业:Alpha冲刺(第三天)
一.项目基本介绍 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 Exception 作业学习目标 1.掌握软件测试基础技术.2.学习迭代式增 ...
- systemctl 控制单元
[root@web01 ~]# systemctl status sshd.service ● sshd.service - OpenSSH server daemon Loaded: loaded ...
- Linux内核中进程上下文和中断上下文的理解
參考: http://www.embedu.org/Column/Column240.htm http://www.cnblogs.com/Anker/p/3269106.html 首先明白一个概念: ...
- Cocos2d-x可以实现的动画效果
动作(Actions)move移动:moveto/moveby 从一个位置移动到另外一个位置 从一个位置移动多少数量级rotate旋转:rotateto/rotateby 从一个角度旋转到另外一个角度 ...
- RedHat6.5 安装OpenStack all in one-RDO方式
OpenStack是一个开源的云平台.由各个组件协同工作,安装非常复杂. RedHat有个关于Openstack的项目RDO,能够简化安装过程,可是假设真按RDO所说的三步去安装,发现安装过程中还是有 ...