HDU 1051 Wooden Sticks(贪心)
来源:互联网 发布:a卡吃鸡优化 编辑:程序博客网 时间:2024/06/06 02:16
http://acm.hdu.edu.cn/showproblem.php?pid=1051
题目大意:用一个机器加工木头 在加工之前要对机器进行设置 设置机器花费时间1分钟 设置机器有两个参数 分别为木头的长度和重量 加工完一根木头后如果下一根木头的长度和重量都大于等于这根木头 则机器不需要重新设置 否则重新设置 花费时间为1分钟 问最终设置机器所花费的最少时间
思路:首先按照木头的长度升序排列 先设置参数为最短的木头 然后将长度和重量都大等于这根木头的木头加工掉(参数变成被加工掉的木头的长和重量)依次找下去 然后找次短。。。。。依次。。
AC代码:
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;int vis[5005];struct node{ int l; int w;}a[5005];int cmp(node x,node y){ if (x.l==y.l)// 如果长度相等 按照重量升序排列 return x.w<y.w; return x.l<y.l;}int main (){ int t; scanf ("%d",&t); while (t--){ memset(a,0,sizeof(a)); memset(vis,0,sizeof(vis)); int n; scanf ("%d",&n); for (int i=0;i<n;i++){ scanf ("%d%d",&a[i].l,&a[i].w); } sort(a,a+n,cmp); int time=0; for (int i=0;i<n;i++){ if (!vis[i]){// 木头是否被加工了 time++; int flag=1; int ww=a[i].w; for (int j=i+1;j<n;j++){ if (!vis[j]&&a[j].w>=ww){ ww=a[j].w;// 参数更新 vis[j]=1;// 标记木头被加工 } } } } printf ("%d\n",time); } return 0;}
阅读全文
0 0
- hdu 1051 Wooden Sticks 贪心
- hdu 1051 Wooden Sticks 贪心
- HDU 1051 Wooden Sticks(贪心)
- hdu 1051 Wooden Sticks【贪心】
- hdu 1051 (贪心)Wooden Sticks
- HDU 1051 Wooden Sticks 贪心
- HDU 1051 Wooden Sticks(贪心)
- HDU 1051 Wooden Sticks (贪心)
- HDU 1051 Wooden Sticks 贪心
- HDU--1051:Wooden Sticks (贪心)
- HDU 1051 Wooden Sticks 贪心
- HDU 1051 Wooden Sticks (贪心)
- hdu 1051 Wooden Sticks(贪心)
- hdu 1051 Wooden Sticks(贪心)
- HDU 1051 Wooden Sticks(贪心)
- HDU 1051 Wooden Sticks (贪心)
- hdu 1051 Wooden Sticks(贪心)
- HDU 1051 Wooden Sticks 贪心
- Windows中VS_VERSION_INFO详解
- 界面技术<一>
- bzoj 1115阶梯博弈
- 线段树-矩形面积求并
- UESTC 1582 奇迹的魔法啊,再度出现! 二进制树(字典树的一种特殊情况)
- HDU 1051 Wooden Sticks(贪心)
- [leetcode: Python]463. Island Perimeter
- IT基础1
- 研发解决方案介绍#Tracing(鹰眼)
- AWK手册
- Java与对称加密、非对称加密算法
- Linux系统基本网络配置
- css的定位
- IT基础2