ACM Wooden Stricks
有一堆n根木棍。每根棍子的长度和重量是预先知道的。 这些棒子将被木工机器逐一加工。。它需要一些时间,称为安装时间,用于机器准备加工棒。设置时间与机器中的清洁操作和更换工具和形状相关联。木工机械的安装时间如下:
(a)第一个木棒的设置时间是1分钟。
(b)在处理一根长度l和重量w后,如果l < = l '和w < = w ',机器将不需要安装长度l '和weight w '。否则,安装需要1分钟。
你要找到最小的安装时间来处理一堆n个木棒。例如,如果你有五根长度和重量为(4、9)、(5、2)、(2、1)、(3、5)、(1、4),那么最小设置时间应为2分钟,因为有一对(1,4),(3,5),(3,5),(4,9),(2,1),(2,1),(5,2)。
输入由T测试用例组成。在输入文件的第一行中给出了测试用例(T)的数量。每个测试用例由两行组成:第一行有一个整数n,1 < = n < = 5000,表示测试用例中木棒的数量,第二行包含n* 2个正整数l1,w1,l2,w2,…,ln,wn,最大10000点,li和wi分别是i th木棒的长度和重量。2n个整数被一个或多个空格分隔。
输出应在分钟内包含最小设置时间,每行一个。
Sample Input
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
Sample Output
2
1
3
#include<bits/stdc++.h>
using namespace std;
struct node{
int l;
int w;
bool flag;
}sticks[];
bool cmp(node a,node b)
{
if(a.l!=b.l)
return a.l > b.l;
else
return a.w > b.w;
}
int main()
{
int t,n;
while(cin>>t)
{
while(t--)
{
scanf("%d",&n);
for(int i = ; i < n; i++)
{
scanf("%d %d",&sticks[i].l,&sticks[i].w);
sticks[i].flag = false;
} sort(sticks,sticks+n,cmp); int ans = ,min;
for(int i = ; i < n; i++)
{
if(sticks[i].flag) continue; /*说明sticks[i]已经被处理*/
min = sticks[i].w; for(int j = i+; j < n; j++) /*往后找 l已经排好了序*/
{
if(min >=sticks[j].w && !sticks[j].flag) /*满足提议所给条件*/
{
min = sticks[j].w; /*按照题中条件 min此时应该要设为木块j的重量*/
sticks[j].flag = true;
}
}
ans++;
}
cout<<ans<<endl;
}
}
return ;
}
ACM Wooden Stricks的更多相关文章
- Wooden Stricks——两个递增条件的线性DP
题目 一堆n根木棍.每个棒的长度和重量是预先已知的.这些木棒将由木工机械一一加工.机器需要准备一些时间(称为准备时间)来准备处理木棍.设置时间与清洁操作以及更换机器中的工具和形状有关.木工机械的准备时 ...
- HDU ACM 1051/ POJ 1065 Wooden Sticks
Wooden Sticks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- HDOJ 1051. Wooden Sticks 贪心 结构体排序
Wooden Sticks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- UVALive 7276 Wooden Signs (DP)
Wooden Signs 题目链接: http://acm.hust.edu.cn/vjudge/contest/127406#problem/E Description http://7xjob4. ...
- HDU 1005 Wooden Sticks
http://acm.hdu.edu.cn/showproblem.php?pid=1051 Problem Description There is a pile of n wooden stick ...
- Wooden Sticks---hdu1051(最长上升子序列)
http://acm.hdu.edu.cn/showproblem.php?pid=1051 Problem Description There is a pile of n wooden stick ...
- SCNU ACM 2016新生赛决赛 解题报告
新生初赛题目.解题思路.参考代码一览 A. 拒绝虐狗 Problem Description CZJ 去排队打饭的时候看到前面有几对情侣秀恩爱,作为单身狗的 CZJ 表示很难受. 现在给出一个字符串代 ...
- SCNU ACM 2016新生赛初赛 解题报告
新生初赛题目.解题思路.参考代码一览 1001. 无聊的日常 Problem Description 两位小朋友小A和小B无聊时玩了个游戏,在限定时间内说出一排数字,那边说出的数大就赢,你的工作是帮他 ...
- acm结束了
最后一场比赛打完了.之前为了记录一些题目,开了这个博客,现在结束了acm,这个博客之后也不再更新了. 大家继续加油!
随机推荐
- memcached企业面试题
面试题如下: 1.Memcached是什么,有什么作用?Memcached是一个开源的,高性能的内存绶存软件,从名称上看Mem就是内存的意思,而Cache就是缓存的意思. Memcached的作用:通 ...
- React-Native(一):React Native环境搭建
第一步:安装jdk 从java官网下载jdk8 配置环境变量: JAVA_HOME:D:\Program Files\Java\jdk1.8.0_111 Path中追加:%JAVA_HOME%\bin ...
- Java-NIO(九):管道 (Pipe)
Java NIO 管道是2个线程之间的单向数据连接.Pipe有一个source通道和一个sink通道.数据会被写到sink通道,从source通道读取. 代码使用示例: @Test public vo ...
- Hibernate(八):基于外键映射的1-1关联关系
背景: 一个部门只有一个一把手,这在程序开发中就会设计数据映射应该设置为一对一关联. 在hibernate代码开发中,实现这个业务有两种方案: 1)基于外键映射的1-1关联: 2)基于主键映射的1-1 ...
- 尼姆博弈(Nimm's Game)
题型: 有3堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取1个,多者不限,最后取光者得胜. 思路 首先自己想一下,就会发现只要最后剩两堆物品一样多(不为零),第三堆为零,那面对这种局 ...
- UVA-10037 Bridge---过河问题进阶版(贪心)
题目链接: https://vjudge.net/problem/UVA-10037 题目大意: N个人夜里过河,总共只有一盏灯,每次最多过两个人,然后需要有人将灯送回 才能继续过人,每个人过桥都需要 ...
- flask开发表单
from flask import Flask from flask import render_template from flask import request from flask impor ...
- PyQuery用法详解
PyQuery是强大而又灵活的网页解析库,如果你觉得正则写起来太麻烦,如果你觉得BeautifulSoup语法太难记,如果你熟悉jQuery的语法 那么,PyQuery就是你绝佳的选择. 一.初始化方 ...
- Menu-菜单组件
#menu菜单组件 from tkinter import * master=Tk() def callback(): print('你好咯!!') m = Menu(master) m.add_co ...
- Ubuntu+apt-get update时的源
源是通过 /etc/apt/sources.list # file /etc/apt/sources.list.d # dir 来确定的, 只要将其中的相应文件/相应行删除了, 在apt-get up ...