【链接】 我是链接,点我呀:)
【题意】

如果a[i]*2<=a[j]那么i袋鼠可以装进j袋鼠里面
每只袋鼠都只能装一只袋鼠

【题解】

假设最后的方案是(ai,bi)
这里(ai,bi)表示下标为ai的袋鼠可以装进下标为bi的袋鼠里面
(这里袋鼠已经按照大小从小到大排序了)
则我们会发现,如果有(a1,b1),(a2,b2)...(ak,bk)这些方案的话(且这些方案合法)
我们总能让这个方案变成
a1~ak=1,2,3...k
b1~bk=n-k+1,n-k+2,n-k+3...n
因为对于每个(ai,bi)
ai只会减小,bi只会增大
那么下标为ai的袋鼠肯定还是小于下标为bi的袋鼠.
所以我们可以这么认为:
我们只会选择体型最小的x只袋鼠和体型最大的x只袋鼠进行配对装载
显然x<=n/2
我们可以二分x的值
然后看看a[i]<a[n-i+1]对于i∈[1..x]是否成立
或者可以这样
因为只会在1..n/2这个区间里选择被装载的袋鼠
所以我们可以贪心的从大到小给a[n],a[n-1]..a[n/2+1]这些"大袋鼠"分配它们装载的小袋鼠.
比如给a[n]分配"小"袋鼠的时候,我们可以试试a[n/2],如果不行,那么显然a[n/2]不能分配给任何一只其他袋鼠了(大的都不行,小的肯定也不行了),则我们继续试a[n/2-1]...以此类推

另外一种错误的思路:
从大到小给每只袋鼠a[i]分配一个最大的且它能装得下的袋鼠a[j].
这种思路错误在于a[j]可能还可以给更小的袋鼠a[k]分配,
但是你把a[j]装下去了,可能除了a[j],a[i]之外没有其他袋鼠能装得下a[k]了。
比如例子:2 2 4 9
答案是2,但如果按照刚才说的错误思路的话,得到的答案会是3,因为9装了4之后,没有人能装2了

【代码】

import java.io.*;
import java.util.*;public class Main {static InputReader in;static PrintWriter out;public static void main(String[] args) throws IOException{//InputStream ins = new FileInputStream("E:\\rush.txt");InputStream ins = System.in;in = new InputReader(ins);out = new PrintWriter(System.out);//code start from herenew Task().solve(in, out);out.close();}static int N = (int)5e5;static class Task{int n;int s[];public void solve(InputReader in,PrintWriter out) {s = new int[N+10];n = in.nextInt();for (int i = 1;i <= n;i++) {s[i] = in.nextInt();}Arrays.sort(s, 1,n+1);int x = 0;int j = n;for (int i = n/2;i >= 1;i--) {if (s[i]*2<=s[j]){x++;j--;}}out.println(n-x*2 + x);}}static class InputReader{public BufferedReader br;public StringTokenizer tokenizer;public InputReader(InputStream ins) {br = new BufferedReader(new InputStreamReader(ins));tokenizer = null;}public String next(){while (tokenizer==null || !tokenizer.hasMoreTokens()) {try {tokenizer = new StringTokenizer(br.readLine());}catch(IOException e) {throw new RuntimeException(e);}}return tokenizer.nextToken();}public int nextInt() {return Integer.parseInt(next());}}
}

【Codeforces 372A】Counting Kangaroos is Fun相关推荐

  1. 【CodeForces - 144C】Anagram Search(尺取,滑窗问题,处理字符串计数)

    题干: A string t is called an anagram of the string s, if it is possible to rearrange letters in t so ...

  2. 【CodeForces - 574B】Bear and Three Musketeers (枚举边,思维,优秀暴力)

    题干: Do you know a story about the three musketeers? Anyway, you will learn about its origins now. Ri ...

  3. 【CodeForces - 608C】Chain Reaction (二分 或 dp ,思维)

    题干: 题目大意: 题意是在一条直线上坐落着不同位置的灯塔,每一个灯塔有自己的power level,当作是射程范围.现在从最右边的灯塔开始激发,如果左边的灯塔在这个灯塔的范围之内,那么将会被毁灭.否 ...

  4. 「一题多解」【CodeForces 85D】Sum of Medians(线段树 / 分块)

    题目链接 [CodeForces 85D]Sum of Medians 题目大意 实现一个setsetset,支持插入,删除,求∑a5k+3∑a5k+3\sum a_{5k+3}.注意,setsets ...

  5. 【CodeForces 997C】Sky Full of Stars(组合计数)

    题目链接:[CodeForces 997C]Sky Full of Stars 官方题解:Codeforces Round #493 - Editorial 题目大意:有一个n×nn×nn\times ...

  6. 【codeforces 812C】Sagheer and Nubian Market

    [题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...

  7. 【codeforces 508B】Anton and currency you all know

    [题目链接]:http://codeforces.com/contest/508/problem/B [题意] 给你一个奇数; 让你交换一次数字; 使得这个数字变成偶数; 要求偶数要最大; [题解] ...

  8. 【codeforces 711B】Chris and Magic Square

    [题目链接]:http://codeforces.com/contest/711/problem/B [题意] 让你在矩阵中一个空白的地方填上一个正数; 使得这个矩阵两个对角线上的和; 每一行的和,每 ...

  9. 【codeforces 807C】Success Rate

    [题目链接]:http://codeforces.com/contest/807/problem/C [题意] 给你4个数字 x y p q 要求让你求最小的非负整数b; 使得 (x+a)/(y+b) ...

  10. 【codeforces 766E】Mahmoud and a xor trip

    [题目链接]:http://codeforces.com/contest/766/problem/E [题意] 定义树上任意两点之间的距离为这条简单路径上经过的点; 那些点上的权值的所有异或; 求任意 ...

最新文章

  1. 用latex排版电磁场课程报告
  2. python profile_python程序之profile分析
  3. mysql+用户批量导出,python批量导出导入MySQL用户的方法
  4. Traumland--梦乡--IPA--德语
  5. 互联网人的恶梦是加班?不,是饥荒!
  6. Web API系列(三)统一异常处理
  7. 硬件:关于CPU超频知识笔记
  8. PHP-FPM Fastcgi 未授权访问漏洞(端口9000)
  9. html u方法,success 方法
  10. oracle plsql创建表空间,Oracle在PLSQL Developer上创建表空间和用户脚本 - 龙卷风的日志 - 网易博客...
  11. 我的失败与伟大 —— 产品原型的打造
  12. postman下载文件
  13. 使用 FUMA 鉴定 Independent SNPs 和 Lead SNPs
  14. 夜曲歌词 拼音_周杰伦夜曲歌词
  15. html全屏轮播图插件,js全屏banner图片轮播插件
  16. IP数据报头部信息分析
  17. 【Codeforces613D】Kingdom and its Cities【虚树】【Tree DP】倍增lca
  18. 基因组选择中如何清洗基因组数据
  19. mct接收_MCT/VOD/LSS/DOC通知接口的使用
  20. Arcgis计算坡度问题

热门文章

  1. 邮件开头结尾一些不同的表达
  2. 计算机单招知识点重点,2018年度单招考试《数学》必背知识点(一).doc
  3. centos7中安装nginx步骤详解
  4. python字符串中常见的内置方法
  5. SLAM之回环检测与优化
  6. UE4_UE5制作3DUI-跟随相机朝向(附工程)
  7. 本地用户和组 无法访问计算机 远程过程调用失败,如何解决远程过程调用失败?怎样使用向日葵远程控制?...
  8. sql 远程过程调用失败
  9. python算法_02字符串(罗马类型的转换整数)
  10. bsl计算机术语,一种BSL的确定方法、BIER-TE控制器和计算机存储介质与流程