时间限制:500MS  内存限制:65535K
提交次数:15 通过次数:4

收入:12

题型: 编程题   语言: C++;C

Description

Huzi酱是个非常贪玩的人,除了魔方他还喜欢各种各样的玩具,所以他的"吕鹏友"为了哄他高兴,每次都要带上新的玩具去见他,这次"吕鹏友"带来的玩具是俄罗斯套娃,就是一种来自俄罗斯的
很出名的玩具,外面看上去有点像不倒翁,里面是空的,不同的套娃体积不同,因此大的套娃可以套住小的套娃。Huzi酱发现"吕鹏友"送给他的俄罗斯套娃有些特别: 1.体积较大的套娃能套住体积较小的套娃,但是体积一定要3倍以上。例如A套娃的体积是3,B套娃的体积是1,那么A可以套住B;A套娃的体积是10,B套娃的体积是3,A的体积是B的3.3333倍,
是3倍以上,所以也能套住。 2.一个大的套娃只能套住一个小的套娃。例如有A,B,C,3个套娃,体积分别为1,2,10。那么C套娃只能套住A或B其中一个,不能同时套住 3.如果一个套娃被另一个大的套娃套住了,那么它不能再套另一个小的套娃。例如A,B,C,3个套娃体积分别为1,3,9,C可以套住B,但是B已经被C套住了,所以B不能再套A(虽然在体积上,B是
允许套住A的) 正在此时,Huzi酱收到了中奖短信,他被抽中了【威尼斯豪华情侣5日游】,所以Huzi酱决定带上他的俄罗斯套娃和"吕鹏友"一起去旅游,但套娃的数量实在太多了,占用了行李箱太多空间,所以
Huzi酱希望用大的套娃套住小的套娃,以便减少俄罗斯套娃的个数,方便携带。但Huzi酱一直不知道要怎么计算出,他能携带的最少的套娃数量,请他帮帮他吧

输入格式

多组测试数据(1<=T<=20),以EOF结束
每组测试数据格式如下:
第1行,一个数字n,1<=n<=500,表示俄罗斯套娃的数量
第2行,n个正整数,第k个正整数a[k]表示第k个套娃的体积,1<=a[k]<=500

输出格式

每组测试数据输出一个正整数,表示经过嵌套后,剩下的俄罗斯套娃的个数

输入样例

6
9 1 3 27 243 81
5
2 3 1 3 1
6
3 3 1 1 3 1

输出样例

3
3
3

一开始的错误结论:排序之后从小到大为每个数匹配就是结果

正确的贪心策略:对数进行排序之后,从小到大每次从中间位置(n/2)开始匹配。对于例子 1 3 6 26,1应该和6匹配,3和26匹配,

因为1能和3匹配,那么1一定能和3后面的6匹配(已排序),但6不一定能26匹配


#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a[1000];
int n;
void solve()
{
int cnt=0;
for(int i=0;i<n;++i)
scanf("%d",&a[i]);
sort(a,a+n);
for(int i=0;i<n;++i)
if(a[i]){
for(int j=n/2;j<n;++j)
if(a[j]>=3*a[i]) {a[j]=a[i]=0;cnt++;break;}
}
for(int i=0;i<n;++i) if(a[i]) cnt++;
printf("%d\n",cnt);
}
int main()
{
while(~scanf("%d",&n))
solve();
}

17243 Huzi酱和他的俄罗斯套娃(贪心)的更多相关文章

  1. cdoj 1141 酱神寻宝 状压dp

    酱神寻宝 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1141 Descri ...

  2. UESTC_酱神寻宝 2015 UESTC Training for Dynamic Programming<Problem O>

    O - 酱神寻宝 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit  ...

  3. UVA 11039-Building designing【贪心+绝对值排序】

    UVA11039-Building designing Time limit: 3.000 seconds An architect wants to design a very high build ...

  4. GYM 101173 F.Free Figurines(贪心||并查集)

    原题链接 题意:俄罗斯套娃,给出一个初始状态和终止状态,问至少需要多少步操作才能实现状态转化 贪心做法如果完全拆掉再重装,答案是p[i]和q[i]中不为0的值的个数.现在要求寻找最小步数,显然要减去一 ...

  5. 洛谷P5021 赛道修建 NOIp2018 贪心+二分答案

    正解:贪心+LCA+二分答案 解题报告: 想先港下部分分qwq因为我部分分只拿到了10ptsQAQ(时间不够不是理由,其实还是太弱,所以要想很久,所以才时间不够QAQ m=1 找直径长度,完 一条链 ...

  6. 2017年浙江工业大学大学生程序设计迎新赛预赛 H - 栗酱的文明

    题目描述         “伟大的勇士兔栽栗女王,所有栗子看到您都不寒而栗,但也非常尊重您.您骑着威风凛凛的小白兔,带领兔栽栗们奋勇前行.伟大史诗告诉我们,烈兔勇栗从大草原飞奔出来,冲在每场战争的前线 ...

  7. hdu1677 贪心

    题意: 对于给出的n个俄罗斯套娃,要求将这n个套起来(满足w1 < w2 && h1 < h2才能套进去),最后输出最少剩下的套娃个数(尽可能去套起来) 题目分析: 朴素的 ...

  8. BZOJ 1692: [Usaco2007 Dec]队列变换 [后缀数组 贪心]

    1692: [Usaco2007 Dec]队列变换 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1383  Solved: 582[Submit][St ...

  9. HDOJ 1051. Wooden Sticks 贪心 结构体排序

    Wooden Sticks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

随机推荐

  1. iOS 中CoreData的简单使用

    原文链接:http://www.jianshu.com/p/4411f507dd9f 介绍:本文介绍的CoreData不在AppDelegate中创建,在程序中新建工程使用,即创建本地数据库,缓存数据 ...

  2. [Android Pro] Fragment中使用SurfaceView切换时闪一下黑屏的解决办法

    方法一.在Activity的onCreate中添加如下代码 getWindow().setFormat(PixelFormat.TRANSLUCENT); reference to :  http:/ ...

  3. Apache 的 httpd.conf 详解

    ServerRoot “/usr/local“ ServerRoot用于指定守护进程httpd的运行目录,httpd在启动之后将自动将进程的当前目录改变为这个目录,因此如果设置文件中指定的文件或目录是 ...

  4. 数据库TSQL语句

    一.创建数据库create database test3;二.删除数据库drop database test3;三.如何创建表create(创建) table(表) test(表名)(此处写列 var ...

  5. 在ubuntu上搭建开发环境5---联想Y470安装 ubuntu,解决双显卡发热等问题

    ubuntu14 没有解决显卡的问题的时候,会有这样的问题 1.耗电特别快.风扇狂转 2.鼠标键头显示有问题,乱闪,根本没法使用,容易卡住找不到鼠标箭头在哪里了:感觉图形界面显示也有问题,不稳定 解决 ...

  6. 网站性能测试工具--MS Web Application Stress Tool

    MS Web Applicaion Stress Tool 是一款网页测试的性能工具,具体的使用可以参考下面这篇博客文章 http://cuisuqiang.iteye.com/blog/193640 ...

  7. 【PHP对XML文件的操作技术【完整版】】

    无论是c/c++还是java.c#均有对XML文件操作的技术,PHP对XML文件的操作的技术主要有三种: DOM.XPath.SimpleXml. 一.DOM DOM:Document Object ...

  8. spring 集成 log4j 配置

    在web.xml中增加如下代码: <context-param> <param-name>log4jConfigLocation</param-name> < ...

  9. 团队作业-第一周-NABCD竞争性需求分析

      1.  Need 需求 随着科技信息的发展,传统的课堂点名亟待步入信息处理的轨道,移动校园课堂点名软件恰好的切入了这个需求点,市场中词类软件也为数不多,因此需求也是比较强烈. 2. Approac ...

  10. WPF程序最小化到任务通知栏

    我们通常使用的桌面软件,都可以最小化到任务通知栏,并且可以从任务通知栏再打开当前软件,或者通过软件的快捷方式从任务通知栏呼出. 我们可以通过下面的方式把WPF程序最小化到任务栏.由于WPF并没有实现N ...