236 心急的C小加
来源:互联网 发布:Java医药管理系统 编辑:程序博客网 时间:2024/05/22 06:43
心急的C小加
时间限制:1000 ms | 内存限制:65535 KB
难度:4
- 描述
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
- 样例输出
213
#include<iostream>#include<cstdio>#include<algorithm>using namespace std;struct stick{ int l; int w; int tof;};int cmp(stick a,stick b){ if(a.l==b.l) return a.w<=b.w; else return a.l<=b.l;}int main(){ int t,n,i,j,x,min,m; stick a[5001]; scanf("%d",&t); while(t--) { min=0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d%d",&a[i].l,&a[i].w); a[i].tof=1; } sort(a,a+n,cmp); min=m=0; while(m!=n) { x=0; while(a[x].tof==0 && x<n) x++; if(x==n) break; a[x].tof=0; m++; for(i=x+1;i<n;i++) { if(a[i].tof==0) continue; if(a[i].l>=a[x].l && a[i].w>=a[x].w) { x=i; a[x].tof=0; m++; } } min++; } printf("%d\n",min); }}
0 0
- NYOJ 236 心急的C小加
- nyoj 236 心急的C小加
- NYOJ-236:心急的C小加
- 南工236 心急的C小加
- NYOJ 236心急的C小加
- nyoj 236 心急的c小加
- nyoj-236-心急的C小加
- 【NYOJ 236 心急的C小加】
- NYOJ 236 心急的C小加
- NYOJ 236 心急的C小加
- 236 心急的C小加
- NYOJ 236 心急的C小加
- NYOJ 236 心急的C小加
- nyoj 236心急的C小加
- NYOJ 236 心急的C小加
- nyoj 236 心急的C小加
- nyoj-236心急的C小加
- NYOJ 236 心急的c小加
- c#应用程序初探
- Capturing self strongly in this block is likely to lead to a retain cycle
- 初探Cocos2dx与TexturePacker使用。
- 一种Android数据请求框架
- hdu 2066 一个人的旅行 最短路径
- 236 心急的C小加
- js 过滤非法字符,只输入数字,文本框长度限制
- 241 字母统计
- AE许可问题万能胶
- 有意思的long long类型移位
- 242 计算球体积
- 杭电2001
- javascript实现全选、反选、取消操作
- 243 交换输出