【二分贪心】Bzoj3969 [WF2013] Low Power
2015-05-25 01:05
253 查看
Description
有n个机器,每个机器有2个芯片,每个芯片可以放k个电池。每个芯片能量是k个电池的能量的最小值。
两个芯片的能量之差越小,这个机器就工作的越好。
现在有2nk个电池,已知它们的能量,我们要把它们放在n个机器上的芯片上,
使得所有机器的能量之差的最大值最小。
Input
第一行,两个正整数,n和k。第二行,2nk个整数,表示每个电池的能量。
Output
一行一个整数,表示所有机器的能量之差的最大值最小是多少。Sample Input
2 31 2 3 4 5 6 7 8 9 10 11 12
Sample Output
1HINT
2nk <= 10^6, 1 <= pi <= 10^9。根据经验肯定先要排序
最大值最小熟悉的设问那么考虑要二分
肯定要尽量往前选
于是检验
//检验部分借鉴了别人的代码真是精简
#include<cstdio> #include<algorithm> using namespace std; const int maxn=1e6+5; int n,k,a[maxn]; int check(int x){ for(int p=1,q=0;q<n&&p<=2*n*k;p++){ if(p-1>q*2*k) return 0; if(a[p+1]-a[p]<=x) q++,p++; } return 1; } int main(){ scanf("%d%d",&n,&k); for(int i=1;i<=2*n*k;i++) scanf("%d",&a[i]); sort(a+1,a+2*n*k+1); int l=0,r=a[2*n*k]-a[1]; while(l<r){ int mid=(l+r)>>1; if(check(mid)) r=mid; else l=mid+1; } printf("%d",l); return 0; }
相关文章推荐
- bzoj 3969 WF2013 Low Power [贪心] [二分答案]
- [BZOJ3969]WF2013 Low Power|二分答案|贪心
- bzoj 3969: [WF2013]Low Power 二分
- bzoj 3969: [WF2013]Low Power
- BZOJ 3969: [WF2013]Low Power
- BZOJ_3969_[WF2013]Low Power_二分答案
- BZOJ.3105.[CQOI2013]新Nim游戏(线性基 贪心 博弈论)
- 【bzoj3174】【TJOI2013】【拯救小矮人】【贪心+dp】
- [BZOJ]3110 [ZJOI2013] K大数查询 整体二分
- bzoj 3613: [Heoi2014]南园满地堆轻絮【二分+贪心】
- 【BZOJ3105】[cqoi2013]新Nim游戏 贪心+线性基
- 【BZOJ 3958】 3958: [WF2011]Mummy Madness (二分+扫描线、线段树)
- BZOJ_1620_[Usaco2008_Nov]_Time_Management_时间管理_(二分+贪心)
- BZOJ 3110: [Zjoi2013]K大数查询 [整体二分]
- bzoj 3214: [Zjoi2013]丽洁体 贪心+暴力
- 【贪心】【线性基】bzoj2460 [BeiJing2011]元素 / bzoj3105 [cqoi2013]新Nim游戏
- 【bzoj3105】【cqoi2013】【新Nim游戏】【线性基+贪心】
- [BZOJ3110][Zjoi2013]K大数查询(主席树套线段树||整体二分 )
- 【bzoj3203】[Sdoi2013]保护出题人 凸包+二分
- 【BZOJ】3110 [Zjoi2013]K大数查询 整体二分+树状数组 || 树套树