nyoj 236 心急的C小加(贪心)
心急的C小加
- 描述
-
C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的时间,如果第i+1个木棒的重量和长度都大于等于第i个处理的木棒,那么将不会耗费时间,否则需要消耗一个单位的时间。因为急着去约会,C小加想在最短的时间内把木棒处理完,你能告诉他应该怎样做吗?
- 输入
-
第一行是一个整数T(1<T<1500),表示输入数据一共有T组。
每组测试数据的第一行是一个整数N(1<=N<=5000),表示有N个木棒。接下来的一行分别输入N个木棒的L,W(0 < L ,W <= 10000),用一个空格隔开,分别表示木棒的长度和质量。 - 输出
- 处理这些木棒的最短时间。
- 样例输入
-
3 5 4 9 5 2 2 1 3 5 1 4 3 2 2 1 1 2 2 3 1 3 2 2 3 1
- 样例输出
-
2 1 3
- 来源
- POJ改编
-
上传者
陈玉 -
//贪心算法的证明围绕着:整个问题的最优解一定由在贪心策略中存在的子问题的最优解得来的。 //思路:以重量为第一级长度为第二级进行比较 模拟循环过程 循环了几次就是时间 // 数据: // 1 2 4 5 9 // 2 5 1 3 4 //第一次 0 0 1 1 1 vis //第二次 0 0 0 0 0 vis #include<stdio.h> #include<iostream> #include<string.h> #include<algorithm> #include<math.h> using namespace std;struct node {int l,w;bool vis; } p[5005];bool cmp(node a,node b) {if(a.w!=b.w)return a.w<b.w;elsereturn a.l<b.l; }int main() {int t;scanf("%d",&t);while(t--){int n;cin>>n;for(int i=0; i<n; i++){cin>>p[i].l>>p[i].w;p[i].vis=1;}sort(p,p+n,cmp);int tmp;int cnt=0;for(int i=0; i<n; i++){tmp=p[i].l;if(p[i].vis==0)continue;for(int j=i+1; j<n; j++){if(p[j].vis&&tmp<=p[j].l){p[j].vis=0;tmp=p[j].l;}}cnt++;}cout<<cnt<<endl;} }
用l作为第一级也行(此代码把vis 用 w代替了 c比c++节约了400ms的时间) #include<stdio.h> #include<math.h> #include<string.h> #include<iostream> #include<algorithm>using namespace std;struct node {int length;int weight; }a[5001]; bool cmp(node x,node y) {if(x.length != y.length)return x.length < y.length;else return x.weight < y.weight; } int main(){int z,n,sum,i,j,t;scanf("%d",&z);while(z--){sum = 0;scanf("%d",&n);for(i = 0;i < n;i++){scanf("%d%d",&a[i].length,&a[i].weight);}sort(a,a+n,cmp);for(i = 0;i < n;i++){t = a[i].weight;if(a[i].weight == 0)continue;for(j = i + 1;j < n;j++){if(a[j].weight >= t){t = a[j].weight;a[j].weight = 0;}}sum++;}printf("%d\n",sum);}return 0; }
nyoj 236 心急的C小加(贪心)相关推荐
- NYOJ 236 心急的C小加
心急的C小加 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的时间 ...
- nyoj 236 心急的C小加(偏序集问题)
描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的时间,如果第i+1个木棒的重量和长度都大于等于第i个处理的木棒,那么将不会耗费时间,否则需 ...
- NYOJ - 心急的C小加
心急的C小加 时间限制: 1000 ms | 内存限制: 65535 KB 难度: 4 描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位 ...
- NYOJ 409 郁闷的C小加(三)
郁闷的C小加(三) 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 聪明的你帮助C小加解决了中缀表达式到后缀表达式的转换(详情请参考"郁闷的C小加(一)&quo ...
- NYOJ 267 郁闷的C小加(二)
郁闷的C小加(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 聪明的你帮助C小加解决了中缀表达式到后缀表达式的转换(详情请参考"郁闷的C小加(一)&quo ...
- NYOJ 257 郁闷的C小加(一)
郁闷的C小加(一) 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 我们熟悉的表达式如a+b.a+b*(c+d)等都属于中缀表达式.中缀表达式就是(对于双目运算符来说)操 ...
- 心急的C小加《贪心》
题目http://115.159.40.116/contest_show.php?cid=66#problem/B 其实这个题就是求有多少个子序列: #include<stdio.h> # ...
- NYOJ_236_心急的C小加
http://acm.nyist.net/JudgeOnline/problem.php?pid=236 这道题,华丽丽的坑了我六个小时的时间. 参考了一下其他的blog,发现原来用的diworth定 ...
- 贪心算法之贪心的c小加问题
NYOJ-236 心急的C小加 心急的C小加 时间限制: 1000 ms | 内存限制: 65535 KB 难度: 4 描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一 ...
- NYOJ-心急的C小加(贪心)
描述: C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的时间,如果第i+1个木棒的重量和长度都大于等于第i个处理的木棒,那么将不会耗费时间,否则 ...
最新文章
- springboot实战 获取spring上下文的4种方式
- mysql日志文件名称_MySQL 日志文件 说明
- np.concatenate
- 970计算机技术基础,2017年武汉大学测绘遥感信息工程国家重点实验室970计算机技术基础考研强化模拟题...
- Python陷阱:为什么不能用可变对象作为函数的默认参数值
- 分析 C# 2.0 新特性 -- 空类型(Nullable Types)
- 【地狱副本】数据结构之线段树Ⅲ——区间最值/赋值/修改/历史值操作(HDU5306,Tyvj 1518,【清华集训2015】V,HDU6315,HDU1828,POJ3162)
- MySQL分页查询语句
- mock 抛出一个异常如何终止_教你使用Mock完成单元测试
- 真实不装| 阿里巴巴新人上路指北
- 物流行业应用虚拟化解决方案
- BigTable的开源实现:HBase数据库
- 学术 | 基于深度学习的图像边缘和轮廓提取方法介绍
- qq空间登陆 cookie_看完这篇 Session、Cookie、Token,和面试官扯皮就没问题了||CSDN博文精选...
- 晨曦记账本记账,导出账目保存表格
- 3V升压5V芯片,3V升压5V电路图
- 隐函数求导(一元和二元)
- 公司财务笔记-岭南学院辅修
- 物联卡/物联网卡/物联流量卡的那些事!
- 我的cocos2d-x学习之路
热门文章
- Linux的ip_conntrack半景
- 一个借口几万条数据但是只返回十条_爬虫实践之爬取10000条菜谱数据
- python内置函数程序_Python入门,一定要吃透这69个内置函数
- LintCode—链表倒数第n个节点(166)
- mongoose学习记录
- mongodb driver c#语法
- ASP.NET Ajax 中出现的 sys 未定义(sys undefined)解决方法总结
- Usage of #pragma
- 续订Exchange 2010 Edge SMTP证书
- 添加下拉框00-23 finereport公式