51nod 1420 数袋鼠好有趣

来源:互联网 发布:python数值求解 编辑:程序博客网 时间:2024/05/01 18:48

贪心+二分

能装进大袋鼠的小袋鼠,肯定是最小的那几个。

所以二分枚举小袋鼠的数量即可。

#include<bits/stdc++.h>using namespace std;const int MAXN=500500;int n,a[MAXN];bool judge(int x){for(int i=0,j=n-x;i<x;i++,j++){if(a[i]+a[i]>a[j])return 0;}return 1;}int main(){int i,x,ans,lef,rig,mid;while(scanf("%d",&n)!=EOF){for(i=0;i<n;i++)scanf("%d",&a[i]);sort(a,a+n);lef=0;rig=n>>1;while(lef<=rig){mid=(lef+rig)>>1;if(judge(mid))lef=mid+1;elserig=mid-1;}printf("%d\n",n-rig);}}


0 0