hdu 1051 Wooden Sticks(贪心策略)
来源:互联网 发布:自学计算机游戏编程 编辑:程序博客网 时间:2024/06/14 03:27
//hdu 1051 Wooden Sticks(贪心策略)/*题意:有一堆n木棍。每根的长度和重量都提前知道。棒是由木工机床在一个接一个的方式处理。它需要一些时间,启动时间,呼吁机器准备处理。设置时间与清洁有关操作和改变机器的工具和形状。给出了木工机床的安装时间如下:(a)第一根木棍设置时间是1分钟。(b)后加工一根长度和重量w,机器将不需要设置时间一根长度l和重量w如果l < = l”和w < = w”。否则,它将需要1分钟的设置。解题:经分析可采用贪心策略。先对木棍长度从小到大排,如果长度相等按重量从小到大排。然后进行贪心策略。具体看代码。*/#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int N=5500;struct node{ int len,w;}a[N];int n;int vis[N];int nk;bool cmp(node a1,node b){ if(a1.len<=b.len) return true; if(a1.w<=b.w&&a1.len==b.len) return true; return false;}int main(){ int t; scanf("%d",&t); while(t--) { scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d%d",&a[i].len,&a[i].w); } sort(a,a+n,cmp); /*for(int i=0;i<n;i++) { cout<<a[i].len<<" "<<a[i].w<<endl; }*/ memset(vis,0,sizeof(vis)); int ansmiu=1; vis[nk]=a[0].w; nk=1; bool flag; for(int i=1;i<n;i++) { flag=false; for(int j=0;j<nk;j++) { if(a[i].w>=vis[j]) { flag=true; vis[j]=a[i].w; break; } } if(flag==false) { vis[nk++]=a[i].w; ansmiu++; } } printf("%d\n",ansmiu); } 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 (贪心)
- Android NDK调试出错Unknown Application ABI, Unable to detect application ABI's的解决方案
- SpringMVC查询返回集合,不能自定义字段对象的解决方法
- 为什么小电容通高频,大电容通低频
- 数据结构之广义表(头尾链表存储)基本操作
- NLog日志管理工具--入门实例
- hdu 1051 Wooden Sticks(贪心策略)
- Android Touch传递的一些简单规则
- Process.waitFor()的返回值含义
- Python正则表达式指南
- 求三维空间中距离最近的两点
- CSDN之金色十月线上编程比赛第一题:小女孩数数
- 1016
- Hduoj1164 【数学】【素数】
- Android自定义属性,format详解