hnust 搬书
问题 G: 搬书
时间限制: 1 Sec 内存限制: 128 MB
提交: 576 解决: 49
[提交][状态][讨论版]
题目描述
XCQ队长要退役啦,由于队长常年刷题,机位上摆着各类算法书,一个人实在是搬不动,所以他叫来了他的小弟ZZX帮忙搬书。队长突然灵机一动,给ZZX出了一个问题。
假设机位上有n本书,每本书的体积分别为ai,那么如果使用容量为V的书包来装书最少要几个书包呢?(注意书是不可拆分的,整体要么装到一个书包,要么不装)。
ZZX(冥思苦想): 不会呀。
XCQ: 看你这么弱,我就把问题再简化一下好啦,让每个书包只装不超过两本书, 那么用k(2 * k >= n)个体积为V的书包能否装完n本书呢?
ZZX(又是一阵冥思苦想): 队长放过我吧,实在是不会啊。
XCQ: 长江后浪推前浪, 既然如此,就把这个问题交给后浪们吧。
输入
第一行包含一个数字T(T <= 60), 表示测试数据组数。然后一空行,随后有T组数据。
每组测数据格式如下:
第一行包含三个数字n,k,V(1 <= n <= 1000000, n <= 2 * k <= 1000000, 1 <= V <= 1000000),表示有n本书,使用k个容量为V的书包。
第二行n个数,表示每本书的体积ai(ai <= 1000000)。所有数据保证给出的n个数是非递减的。
每组数据后面有一空行。
输出
每组数据输出一行, 如果能够装完所有书本输出"Yes",否则输出"No",引号不需要输出,注意字母大小写。
样例输入
3 4 5 8
1 5 6 8 3 2 7
3 5 7 10 5 108
15 15 20 28 38 44 46 52 69 94
样例输出
Yes
No
No 判断最后一个是否大于最大容量。然后判断k个包够不够装
#include <cstdio>
int t,n,k,v,i,j,s[],ans,flag,op;
int main()
{
scanf("%d",&t);
while(t--)
{
flag=,i=,j=;
for(scanf("%d%d%d",&n,&k,&v),i=;i<n;i++) scanf("%d",&s[i]);
if(s[n-]>v) flag=;
else if(k>=n)
{
if(s[n-]>v) flag=;
else flag=;
}
else
{
i=,j=(n-k)*-;
while(i<j)
{
if(s[i++]+s[j--]>v)
{
flag=;
break;
}
}
}
if(flag) printf("Yes\n");
else printf("No\n");
}
return ;
}
hnust 搬书的更多相关文章
- 【题解】搬书-C++
搬书 Description 陈老师桌上的书有三堆,每一堆都有厚厚的一叠,你想逗一下陈老师,于是你设计一个最累的方式给他,让他把书 拿下来给同学们.若告诉你这三堆分别有i,j,k本书,以及每堆从下到上 ...
- 洛谷U36590搬书
题目背景 陈老师喜欢网购书籍,经常一次购它个百八十本,然后拿来倒卖,牟取暴利.前些天,高一的新同学来了,他便像往常一样,兜售他的书,经过一番口舌,同学们决定买他的书,但是陈老师桌上的书有三堆,每一堆都 ...
- C语言搬书学习第一记 —— 认识一个简单程序的细节
#include<stdio.h> /*告诉编译器把stdio.h 中的内容包含在当前程序中,stdio.h是C编译器软件包的标准部分,它提供键盘输入和 屏幕输入的支持studio.h文件 ...
- Concurrency != Parallelism
前段时间在公司给大家分享GO语言的一些特性,然后讲到了并发概念,大家表示很迷茫,然后分享过程中我拿来了Rob Pike大神的Slides <Concurrency is not Parallel ...
- NRF51822之ADC(1)
在开始讲解的前,我们不生产水,我们只是大自然的搬运工.开始搬手册(nRF51 Series Reference Manual Version 3.0)上的资料
- 【底层原理】深入理解Cache (上)
存储器是分层次的,离CPU越近的存储器,速度越快,每字节的成本越高,同时容量也因此越小.寄存器速度最快,离CPU最近,成本最高,所以个数容量有限,其次是高速缓存(缓存也是分级,有L1,L2等缓存),再 ...
- 洛谷 P1777 帮助_NOI导刊2010提高(03) 解题报告
P1777 帮助_NOI导刊2010提高(03) 题目描述 Bubu的书架乱成一团了!帮他一下吧! 他的书架上一共有n本书.我们定义混乱值是连续相同高度书本的段数.例如,如果书的高度是30,30,31 ...
- 2017 济南综合班 Day 6
循环移动 (cyclic.cpp/c/pas) (1s/256M) 问题描述 给出一个字符串S与N个操作.每个操作用三元组(L, R, K)进行描述:操作将字符串第L个到第R个位置构成的子串循环移动K ...
- NOIP后省选集训前文化课划水记
划水划了一个多月,文化课没啥长进还他妈累死了...--ghj1222 11.11(NOIP Day2) 师傅开车开得很快,晚上8:00多就到了二狱 晚上听毒瘤班主任swh讲了半节语文,我:黑人问号.j ...
随机推荐
- Redis分片(分区)
分区的概念 分区是分割数据到多个Redis实例的处理过程,因此每个实例只保存key的一个子集. 如果只使用一个redis实例时,其中保存了服务器中全部的缓存数据,这样会有很大风险,如果单台redis服 ...
- 索引属性 name指定
创建索引时的格式: db.collection.ensureIndex({param},{param}) 其中,第一个是索引的值,之前一直只用到了第一个,第二个参数便是索引的属性 比较重要的属性有: ...
- python_41_with语句
#为了避免打开文件后忘记关闭,可以通过管理上下文,即:with open('log','r') as f: # 如此方式,当with代码块执行完毕时,内部会自动关闭并释放文件资源. with open ...
- 【转】CentOS 7.0 安装Redis 3.2.1详细过程和使用常见问题
http://www.linuxidc.com/Linux/2016-09/135071.htm 环境:CentOS 7.0 Redis 3.2.1 Redis的安装与启动 这里我把Redis放在/h ...
- 标准对象 -------JavaScript
本文摘要:http://www.liaoxuefeng.com/ 在JavaScript的世界里,一切都是对象. 但是某些对象还是和其他对象不太一样.为了区分对象的类型,我们用typeof操作符获取对 ...
- 洛谷P1049装箱问题
一句话刚刚的题会了,这题能不会么. #include<bits/stdc++.h> using namespace std; int main(){ int n,m; cin>> ...
- 初学puppet
初学puppet puppet是什么? puppet是一个开源的软件自动化配置和部署工具,很多大型IT公司均在使用puppet对集群中的软件进行管理和部署. Puppet简介 Puppet的目录是让管 ...
- 【JS】实时监控页面,input框数值自动求和
需求: 有一个页面需要将input框填入的各个费用自动相加,添加到“合计费用”里. 解决方案: 使用jquery的blur实践,每个费用的Input框检测到失去焦点时,将所有的input框数值相加求和 ...
- ZendFramework-2.4 源代码 - 关于MVC - Model层
所谓的谓词Predicate // ------ 所谓的谓词 ------ // 条件 case.3 $where = new \Zend\Db\Sql\Where(); $expression = ...
- JZOJ 3223. 【HBOI2013】Ede的新背包问题
3223. [HBOI2013]Ede的新背包问题 (Standard IO) Time Limits: 2000 ms Memory Limits: 262144 KB Detailed Lim ...