[BZOJ3969]WF2013 Low Power|二分答案|贪心
2015-06-03 20:52
246 查看
先排序,二分能量差,显然同个机器的两个芯片的电池的最小值是连续的,否则交换之后可以得到更优的解,那么贪心地选取2*n对连续的电池,如果能选出且它们的后面都可以放2*(k-1)个电池的这是一个可行答案。。
#include<cstdio> #include<iostream> #include<algorithm> #include<memory.h> #define N 1000005 using namespace std; int n,k,i,l,r,m,mid,a ; bool check(int x) { int cnt=n; for (int i=1;cnt&&i<=m;i++) if (i!=m&&a[i+1]-a[i]<=x) { if(m-i+1<2*cnt*k) return 0; cnt--;i++; } return !cnt; } int main() { scanf("%d%d",&n,&k); m=2*n*k; for (i=1;i<=m;i++) scanf("%d",&a[i]); sort(a+1,a+1+m); l=a[2]-a[1];r=a[m-k+1]; while (l<r) { mid=(l+r)>>1; if (check(mid))r=mid;else l=mid+1; } printf("%d\n",l); }
相关文章推荐
- [BZOJ2152]聪聪可可|树的点分治
- C中fgetc()和fputc简单用法介绍
- ViewConfiguration滑动参数设置类
- 如何在Linux下拷贝一个目录呢
- iOS上架错误集合
- cocos2dx 3.2截屏功能
- MyBatis学习总结(七)——Mybatis缓存
- 客运综合管理系统项目解析-领导查询-售票查询
- 会员卡管理系统技术解析(十四)添加会员卡换卡记录
- Response.Redirect 打开新窗体的两种方法
- Java知多少(81)框架窗口基础
- MDT 2013 从入门到精通之自动化部署配置
- MDT 2013 从入门到精通之自动化部署配置
- ceph高级命令
- 代码规范
- 在VS2008中移植uCOS-II
- LAMP一键源码安装脚本最新版(实测有效)
- 杭电1001
- android使用ant自动打包(包括更改文件中的内容)
- 凯云水利水电工程造价系统 (六)中间单价(2)