BZOJ 3969 low power
Description
有\(n\)个机器,每个机器有\(2\)个芯片,每个芯片可以放\(k\)个电池。每个芯片能量是\(k\)个电池的能量的最小值。两个芯片的能量之差越小,这个机器就工作的越好。现在有\(2nk\)个电池,已知它们的能量,我们要把它们放在\(n\)个机器上的芯片上,使得所有机器的能量之差的最大值最小。
Input
第一行,两个正整数,\(n\)和\(k\)。
第二行,\(2nk\)个整数,表示每个电池的能量。
Output
一行一个整数,表示所有机器的能量之差的最大值最小是多少。
Sample Input
2 3
1 2 3 4 5 6 7 8 9 10 11 12
Sample Output
1
HINT
\(2nk \le 10^{6}, 1 \le p_{i} \le 10^{9}\)。
答案明显满足可二分性,我们可以利用贪心检验。
我们将所有的\(power\)从小到大排个序。然后二分一个结果\(mid\),从左往右枚举\(i\),如果\(power_{i+1}-power_{i} \le mid\),就选择这两个电池作为能量最小的电池装到一个机器人上,直到选出\(2n\)个。最后我们只需要检验是否每个电池都可以在它后面跟上\(K-1\)个电池即可。这个从左往右for一遍贪心即可。
#include<algorithm>
#include<cstdio>
#include<cstdlib>
using namespace std;
#define maxn (1000010)
int N,K,power[maxn],cho[maxn];
inline bool check(int key)
{
int nn = 0;
for (int i = 1;i < (N*K<<1)&&nn < (N<<1);++i) if (power[i+1]-power[i] <= key) cho[++nn] = i,cho[++nn] = i+1,++i;
if (nn != (N<<1)) return false;
for (int i = nn,last = (N*K<<1)+1,tot = 0;i;--i)
{
tot -= cho[i]-last; tot -= K; last = cho[i];
if (tot < 0) return false;
}
return true;
}
int main()
{
freopen("3969.in","r",stdin);
freopen("3969.out","w",stdout);
scanf("%d %d",&N,&K);
for (int i = 1;i <= (N*K<<1);++i) scanf("%d",power+i);
sort(power+1,power+(N*K<<1)+1);
int l = 0,r = 1<<30;
while (l <= r)
{
int mid = (l + r) >> 1;
if (check(mid)) r = mid - 1;
else l = mid + 1;
}
printf("%d",l);
fclose(stdin); fclose(stdout);
return 0;
}
BZOJ 3969 low power的更多相关文章
- BZOJ 3969 Low Power 解题报告
我们首先将所有电池排序,那么我们可以找到一组最优方案,使得一台机器的能量之差是相邻两电池的能量之差. 然后我们就二分这个答案,从前往后贪心地选这个数对,然后看是否所有的数对都是满足条件的. 假设这个数 ...
- bzoj 3969: [WF2013]Low Power 二分
3969: [WF2013]Low Power Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnli ...
- tensorfolw配置过程中遇到的一些问题及其解决过程的记录(配置SqueezeDet: Unified, Small, Low Power Fully Convolutional Neural Networks for Real-Time Object Detection for Autonomous Driving)
今天看到一篇关于检测的论文<SqueezeDet: Unified, Small, Low Power Fully Convolutional Neural Networks for Real- ...
- Low Power Consumption Design --- MCU Attention
20161008 note : I have a PCB board called 'A' where a piece of STM8L052C6 and a piece of CC1101 are ...
- Low Power之CPF/UPF
1 CPF The Common Power Format is a standard promoted by the Low Power Coalition at Si2. CPF is also ...
- [CortexM0--stm32f0308]Low Power Mode
问题描写叙述 stm32f0308正常是运行在Run mode下.这样的mode是在reset之后的默认模式.Low Power Mode.即低功耗模式.用于在IC空暇时能够考虑选择进入.使系统耗能减 ...
- PatentTips - Fast awake from low power mode
BACKGROUND Electronic devices, such as electronic book readers ("eBook reader devices"), c ...
- Network management system scheduling for low power and lossy networks
In one embodiment, a network management system (NMS) determines an intent to initialize a request-re ...
- ACM - ICPC World Finals 2013 F Low Power
原题下载:http://icpc.baylor.edu/download/worldfinals/problems/icpc2013.pdf 题目翻译: 问题描述 有n个机器,每个机器有2个芯片,每个 ...
随机推荐
- FPGA的JTAG下载问题
前两天做一个工频信号源项目,连续出现两块FPGA板JTAG编程failed现象,不知道原因.网上搜索了下,有帖子说如果是JTAG损坏了,用表笔打TCK,TMS,TDI,TDO,看是否存在和GND短接, ...
- TCP 连接的建立和终止
三路握手 建立一个TCP连接时会发生下述情形. (1)服务器必须准备好接受外来的连接.这通常通过调用socket.bind和listen这3个函数来完成的,我们称之为被动打开. (2)客户通过调用co ...
- one problem about Apple Keychain in use
解决方案 Add Security.framework, then rebuild. Sometimes I find I have to build clean and then rebuild. ...
- Linux shell的&&和||--转载
Linux shell的&&和|| shell 在执行某个命令的时候,会返回一个返回值,该返回值保存在 shell 变量 $? 中.当 $? == 0 时,表示执行成功:当 $? ...
- Java基础知识强化之集合框架笔记49:键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩)按照总分从高到低输出到控制台
1. 键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩)按照总分从高到低输出到控制台: 分析: A: 定义学生类 B: 创建一个TreeSet集合 C: 总分从高到底如何实现 ...
- C#语法糖之第二篇: 参数默认值和命名参数 对象初始化器与集合初始化器
今天继续写上一篇文章C#4.0语法糖之第二篇,在开始今天的文章之前感谢各位园友的支持,通过昨天写的文章,今天有很多园友们也提出了文章中的一些不足,再次感谢这些关心我的园友,在以后些文章的过程中不断的完 ...
- Python初学记录
发音: 拍怂 语系:类C 特点: 1语句控制不用{}和(),而是强制用户空格或tab缩进.空格和tab数量不一定. 2解释性语言,不需要事先声明变量,即写即用. 3.list 列表可存放多种类型数据. ...
- iOS 跳转到应用所在的App Store市场
代码入下 #import "ViewController.h" @interface ViewController ()<UIWebViewDelegate> @end ...
- cocos2dx arpg单机手游
这只是一个DEMO. ARPG 单机手游, 个人DEMO. 支持剧情编辑, 支持气泡对话, 支持人物图像对话, 支持随时角色切换, 支持NPC跟随, 共同作战, 支持LUA扩展, 支持BUFF技能, ...
- Dice (III) 概率dp
#include <cstdio> #include <iostream> #include <cstring> #include <algorithm> ...