博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
问题 G: 心急的C小加
阅读量:6816 次
发布时间:2019-06-26

本文共 1627 字,大约阅读时间需要 5 分钟。

题目描述

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
1 #include
2 #include
3 #include
4 5 struct P { 6 int L; 7 int W; 8 int flag; 9 }P[5050];10 11 int cmp(const void *a, const void *b) {12 struct P *c = (struct P *)a;13 struct P *d = (struct P *)b;14 if(c->L != d->L){15 return c->L - d->L;16 }17 return c->W- d->W;18 }19 20 int main( ) {21 int T, N, i, j, now;22 int ans;23 scanf("%d",&T);24 while(T--) {25 scanf("%d",&N);26 memset(P, 0, sizeof(P));27 for(i = 0; i < N; i++) {28 scanf("%d %d", &P[i].L, &P[i].W);29 P[i].flag = 0;30 }31 32 qsort(P, N, sizeof(P[0]), cmp);33 ans = 0;34 for(i = now = 0;i < N;i++) {35 if(P[i].flag == 0) {36 now = i;37 for(j = i + 1; j < N; j++) {38 if(P[j].flag == 0 && P[j].L >= P[now].L && P[j].W >= P[now].W){39 P[j].flag = 1;40 now = j;41 }42 }43 ans++;44 }45 }46 printf("%d\n", ans);47 }48 return 0;49 }
View Code

 

转载于:https://www.cnblogs.com/tong69/p/5771198.html

你可能感兴趣的文章
VB.NET 自动打包程序
查看>>
CISCO引擎RPR SSO
查看>>
LINUX APACHE 安装测试
查看>>
Java导致登录UCS Manager异常
查看>>
HTTP协议
查看>>
Win10怎么改Host文件?Win10编辑host文件方法(无视权限)
查看>>
sql convert and cast
查看>>
我的NodeJS一年之旅总结
查看>>
MyBatis-3.4.2-源码分析6:解析XML之objectWrapperFactoryElement & reflectorFactoryElement
查看>>
javascript与获取鼠标位置有关的属性
查看>>
Oracle database 11.2.0.3.0 升级至 11.2.0.3.14
查看>>
heartbeat理论介绍
查看>>
简单实现MVC模式
查看>>
mysql连接小错误一例
查看>>
奇怪的“考生”:中美高考,我都考一考!
查看>>
winform datagridview 使用论坛。
查看>>
Cocos Studio study ---------- 使用CocosStudio1.6制作 界面,并结合代码制作游戏
查看>>
关于LittleSis网站数据API的简单整理
查看>>
虚函数的实现
查看>>
【原】Oracle 数据库实例启动过程
查看>>