题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=1051

题目大意:
给你n根木棍的长度和重量。根据要求求出制作该木棍的最短时间。建立第一个木棍需要1分钟,如果接着制作的木棍比这个木棍的长度长(或者相等),重量要重(或者相等),那么接着制作的木棍不需要花费时间!然后如果再继续接着制作,则下一个木棍要比上一个木棍的长度长(或者相等),重量大(或者相等),则这个木棍也不需要花费时间!依次类推,反之,则需要花费一分钟,然后让你求出制作这一批木棍花费的最少的时间是多少!

解题思路:

排序,贪心,按照长度从小到大排序,长度相同质量从小到大排序,每次取最小的木棍,从小到大扫描一遍并标记,然后继续取未标记的最小的木棍,以此类推,每次取最小的木棍时,时间加一就得到结果了。

 #include<iostream>
#include<string>
#include<vector>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define FOR(i, a, b) for(int i = a; i < b; i++)
using namespace std;
int n, T;
struct node
{
int l, w;
bool operator < (const node & a)const
{
return l < a.l || l == a.l && w < a.w;
}
};
const int maxn = ;
node a[maxn];
bool vis[maxn];
bool f(node a, node b)//判断a<b是否成立
{
return (a.l <= b.l && a.w <= b.w);
}
int main()
{
cin >> T;
while(T--)
{
cin >> n;
for(int i = ; i < n; i++)
{
cin >> a[i].l >> a[i].w;
vis[i] = ;
}
sort(a, a + n);//排序
int ans = ;
for(int i = ; i < n; i++)
{
if(vis[i])continue;//如果已经标记过的,直接下一个
vis[i] = ;
node now = a[i];//设置当前小的木棍,找到一个比它大的,更新当前木棍
for(int j = i + ; j < n; j++)
{
if(vis[j])continue;
if(f(now, a[j]))
{
vis[j] = ;
now = a[j];
}
}
ans++;
}
cout<<ans<<endl;
}
return ;
}

hdu1051 Wooden Sticks---贪心的更多相关文章

  1. hdu1051 Wooden Sticks(贪心+排序,逻辑)

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

  2. 1270: Wooden Sticks [贪心]

    点击打开链接 1270: Wooden Sticks [贪心] 时间限制: 1 Sec 内存限制: 128 MB 提交: 31 解决: 11 统计 题目描述 Lialosiu要制作木棍,给n根作为原料 ...

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

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

  4. HDU1051 Wooden Sticks 【贪婪】

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

  5. Hdu1051 Wooden Sticks 2017-03-11 23:30 62人阅读 评论(0) 收藏

    Wooden Sticks Problem Description There is a pile of n wooden sticks. The length and weight of each ...

  6. HDOJ.1051 Wooden Sticks (贪心)

    Wooden Sticks 点我挑战题目 题意分析 给出T组数据,每组数据有n对数,分别代表每个木棍的长度l和重量w.第一个木棍加工需要1min的准备准备时间,对于刚刚经加工过的木棍,如果接下来的木棍 ...

  7. HDU 1051 Wooden Sticks (贪心)

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

  8. uvalive 2322 Wooden Sticks(贪心)

    题目连接:2322 Wooden Sticks 题目大意:给出要求切的n个小木棍 , 每个小木棍有长度和重量,因为当要切的长度和重量分别大于前面一个的长度和重量的时候可以不用调整大木棍直接切割, 否则 ...

  9. HDU 1051 Wooden Sticks 贪心||DP

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

  10. HDU - 1051 Wooden Sticks 贪心 动态规划

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

随机推荐

  1. python安装第三方库

    在编写爬虫程序时发现unsolved import 一时不解,以为是ide出问题了,其实是没有安装第三方库导致的. 于是到https://pypi.python.org/pypi/requests/去 ...

  2. Object.prototype.hasOwnProperty与Object.getOwnPropertyNames

    Object.prototype.hasOwnProperty() 所有继承了 Object 的对象都会继承到 hasOwnProperty 方法.这个方法可以用来检测一个对象是否含有特定的自身属性: ...

  3. java常用集合总结

    1.线程安全 线程安全就是说多线程访问同一代码,不会产生不确定的结果. 2.List类和Set类List类和Set类是Collection集合接口的子接口.Set子接口:无序,不允许重复.List子接 ...

  4. spring boot 2.0.0由于版本不匹配导致的NoSuchMethodError问题解析

    spring boot升级到2.0.0以后,项目突然报出 NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBu ...

  5. 【Python】 MySQLdb的安装与使用

    MySQLdb MySQLdb是一款较为底层的,python连接mysql用的模块.和更加高级的,提供ORM的模块不同,MySQLdb主要还是聚焦于如何和数据库进行连接和进行基本的操作,操作的体现形式 ...

  6. 教你怎么样在大陆直接使用google搜索

    一.环境准备 我们需要一个nginx的模块来进行设置,ngx_http_google_filter_module.前提我们是有一个海外的VPS,并且可以访问谷歌,我的VPS是亿速云香港的. 首先先感受 ...

  7. jmeter 前置处理器提取用户cookie信息 比如jsessionid

    一般登录过程分成两步,一步是打开登录页面, 一步是输入用户名和密码登录 现在B/S架构的系统好多时候都只在客户端的cookie信息保留一个jsessionId,然后每次请求的时候在请求的头信息的coo ...

  8. android中shape属性大全

    出处:http://kofi1122.blog.51cto.com/2815761/521605

  9. web语义化之SEO和ARIA

    在快速理解web语义化的时候,只知道web语义化有利于SEO和便于屏幕阅读器阅读,但并不知道它是如何有利于SEO和便于阅读器阅读的,带着这个疑问,进行了一番探索总结. SEO 什么是SEO? SEO( ...

  10. JQuery :contains选择器,可做搜索功能,搜索包含关键字的dom

    假设有一个加油站列表,找到所有包含某某关键字的加油站. 选择所有包含 "is" 的 <p> 元素: $("p:contains(is)") 搜索功能 ...