标签:std print 机器 ace 重置 div using continue 技术分享
本题题意:有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
标签:std print 机器 ace 重置 div using continue 技术分享
原文地址:http://www.cnblogs.com/mtl6906/p/7395859.html