有一堆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的更多相关文章

  1. Wooden Stricks——两个递增条件的线性DP

    题目 一堆n根木棍.每个棒的长度和重量是预先已知的.这些木棒将由木工机械一一加工.机器需要准备一些时间(称为准备时间)来准备处理木棍.设置时间与清洁操作以及更换机器中的工具和形状有关.木工机械的准备时 ...

  2. HDU ACM 1051/ POJ 1065 Wooden Sticks

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

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

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

  4. UVALive 7276 Wooden Signs (DP)

    Wooden Signs 题目链接: http://acm.hust.edu.cn/vjudge/contest/127406#problem/E Description http://7xjob4. ...

  5. HDU 1005 Wooden Sticks

    http://acm.hdu.edu.cn/showproblem.php?pid=1051 Problem Description There is a pile of n wooden stick ...

  6. Wooden Sticks---hdu1051(最长上升子序列)

    http://acm.hdu.edu.cn/showproblem.php?pid=1051 Problem Description There is a pile of n wooden stick ...

  7. SCNU ACM 2016新生赛决赛 解题报告

    新生初赛题目.解题思路.参考代码一览 A. 拒绝虐狗 Problem Description CZJ 去排队打饭的时候看到前面有几对情侣秀恩爱,作为单身狗的 CZJ 表示很难受. 现在给出一个字符串代 ...

  8. SCNU ACM 2016新生赛初赛 解题报告

    新生初赛题目.解题思路.参考代码一览 1001. 无聊的日常 Problem Description 两位小朋友小A和小B无聊时玩了个游戏,在限定时间内说出一排数字,那边说出的数大就赢,你的工作是帮他 ...

  9. acm结束了

    最后一场比赛打完了.之前为了记录一些题目,开了这个博客,现在结束了acm,这个博客之后也不再更新了. 大家继续加油!

随机推荐

  1. 深入理解Javascript单线程谈Event Loop

    假如面试回答js的运行机制时,你可能说出这么一段话:"Javascript的事件分同步任务和异步任务,遇到同步任务就放在执行栈中执行,而碰到异步任务就放到任务队列之中,等到执行栈执行完毕之后 ...

  2. hdu 6205 card card card

    https://vjudge.net/contest/184514#problem/L题意:排成一行的一堆牌,每堆牌都有一定数量的牌,然后每堆牌对应有一个惩罚值.一开始所有的牌都是正面向下的,并且在游 ...

  3. AutoFac+MVC+WebApi源码----我踩过的坑

    发现网上关于AutoFac的Demo源码比较少,综合MVC和WepApi的更少.所以贴出源码 WebApi项目(MVC4不需要引用,历史遗留问题,人懒没删) 建项目 新建类库IAutoFacDal(接 ...

  4. Sevrlet 工作原理解析-转

    从 Servlet 容器说起 要介绍 Servlet 必须要先把 Servlet 容器说清楚,Servlet 与 Servlet 容器的关系有点像枪和子弹的关系,枪是为子弹而生,而子弹又让枪有了杀伤力 ...

  5. Java四种线程池的学习与总结

    在Java开发中,有时遇到多线程的开发时,直接使用Thread操作,对程序的性能和维护上都是一个问题,使用Java提供的线程池来操作可以很好的解决问题. 一.new Thread的弊端 执行一个异步任 ...

  6. ES6 new syntax of let and const (one)

    variable declarations : let, const,and block scope why we redefine the way about declarations? funct ...

  7. [LeetCode] Longest Word in Dictionary 字典中的最长单词

    Given a list of strings words representing an English Dictionary, find the longest word in words tha ...

  8. ios开发-MapKit(地图框架)使用简介

    我们使用app的时候,很多软件都自带了地图功能.我们可以看到自己的位置,看到周围商场等信息.我们也可以导航,划线等. 其实苹果的MapKit使用起来还是很简单的.这里简单的介绍一下. 0.使用前准备 ...

  9. 【Swift】ios开发中巧用 description 打印对象时,打印对象的属性

    ios开发中我们打印对象的时候,会直接输出对象地址,这样不方便我们开发.我们可以 巧用 description 打印对象时,输出对象的属性 在oc中直接重写即可.swift中需要遵守Printable ...

  10. 机器学习技法:03 Kernel Support Vector Machine

    Roadmap Kernel Trick Polynomial Kernel Gaussian Kernel Comparison of Kernels Summary