hdu_1051-Wooden Sticks
[cpp]
/* 题目大意:将木棍分堆,保证每堆木头的长度和重量都是非递减的,最少分几堆
* 解题思路:将木头按长度非递减排序,然后从第一个开始将重量能组成非递减的木棍分堆即可
*/
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define MAX 10002
struct node {
int x, y;
} a[MAX];
bool cmp(node a, node b) {
if( a.x == b.x ) return a.y < b.y;
return a.x < b.x;
}
int main(int argc, char const *argv[]) {
#ifndef ONLINE_JUDGE
freopen("test.in", "r", stdin);
#endif
int cnt, ans, n;
scanf("%d", &cnt);
for(int k = 0; k < cnt; k ++) {
ans = 0;
scanf("%d", &n);
for(int i = 0; i < n; i ++)
scanf("%d %d", &a[i].x, &a[i].y);
sort(a, a + n, cmp); www.zzzyk.com
for(int i = 0; i < n; i ++) {
if( !a[i].x && !a[i].y ) continue ;
for(int j = i + 1; j < n; j ++) {
if( a[i].y <= a[j].y ) {
a[i].x = a[j].x;
a[i].y = a[j].y;
a[j].x = a[j].y = 0;
}
}
ans ++;
}
printf("%d\n", ans);
}
return 0;
}
补充:软件开发 , C++ ,