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,这个博客之后也不再更新了. 大家继续加油!
随机推荐
- (数字IC)低功耗设计入门(八)——物理级低功耗设计&to be continued?
前面学习了从系统级到门级的低功耗设计,现在简单地了解了一下物理级设计.由于物理级的低功耗设计与后端有关了,这里就不详细学习了.这里主要是学习了一些基本原则,在物理级,进行低功耗设计的基本原则是: ...
- python——模块与包2
模块与包2 1 什么是包 包是一种通过使用.'模块名'来组织python模块名称空间的方式. 无论是import形式还是from...import形式,凡是在导入语句中(而不是在使用时)遇到带点的,都 ...
- hdu1018 Big Number---N!的位数
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1018 题目大意: 求n阶乘的位数思路: N的阶乖的位数等于LOG10(N!)=LOG10(1)+.. ...
- vue-router详解——小白速会
一.概述 vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用. vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来. ...
- C++_进阶之函数模板_类模板
C++_进阶之函数模板_类模板 第一部分 前言 c++提供了函数模板(function template.)所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体制定,用一个虚拟的类型来 ...
- C# Post提交数据
/// <summary> /// Post提交数据 /// </summary> /// <param name="postUrl">URL& ...
- [LeetCode] Redundant Connection II 冗余的连接之二
In this problem, a rooted tree is a directed graph such that, there is exactly one node (the root) f ...
- [LeetCode] Longest Word in Dictionary through Deleting 删除后得到的字典中的最长单词
Given a string and a string dictionary, find the longest string in the dictionary that can be formed ...
- pyqt4 写动画不能播放问题集合
最近在学习动画,真的真的是血泪史,百度基本是0资源,各种在谷歌外国大佬的英文中躺过一个一个血坑....... 这是随便写的一个动画功能调试窗口..... 问题现象: 点击食灵,没反应,写的动画不能生成 ...
- 树莓派控制HC-SR04超声波模块测距(新手向+C语言向)
因为作业要求使用c语言代码,这里先附上一段摘自网上的代码 感谢KalaerSun的c语言代码,摘自https://blog.csdn.net/qq_25247589/article/details/6 ...