hdu acm-step 1.3.6 Wooden Sticks
Posted mtl6906
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu acm-step 1.3.6 Wooden Sticks相关的知识,希望对你有一定的参考价值。
本题题意:有n根棍子,给出两个属性长度l和重量w,当加工当前棍子的长度和长度均大于上一根棍子时,可以不重置机器,每次重置机器要花1min,
求最小时间。
代码如下:
#include <cstdio> #include <algorithm> #include <cstring> using namespace std; struct Node { int l,w; bool operator<(const Node &node){if(l<node.l)return true;else if(l>node.l)return false;if(w<node.w)return true;return false;} }; Node a[5000]; int b[5000]; int main() { int T; scanf("%d",&T); while(T--) { memset(b,0,sizeof(b)); 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); int count = 0; int sum=0; Node temp; for(int i=0;i<n;i++) { if(b[i]==0) { sum++; count++; b[i] = 1; temp = a[i]; if(count==n)break; } else continue; for(int j=0;j<n;j++) { if(temp.l<=a[j].l&&temp.w<=a[j].w&&b[j]==0){temp=a[j];b[j]=1;count++;if(count==n)break;} } if(count==n)break; } printf("%d\\n",sum); } return 0; }
这道题就是两个循环,每处理完一根棍子后,要记录当前棍子的属性,然后跟下一根比较,仅当当前棍子的两个属性都大于上一根棍子时才进行比较,比较完n个棍子,就结束循环,打印结果。
以上是关于hdu acm-step 1.3.6 Wooden Sticks的主要内容,如果未能解决你的问题,请参考以下文章