[Cpp]/* principle: Separate the wooden sticks to ensure that the length and weight of each pile of wood are non-decreasing. * solution: sort wood by non-descending length, then, from the first one, you can separate non-decreasing wooden sticks by weight */# 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 (. x = B. x) return. y <B. y; return. x <B. x;} int main (int argc, char const * argv []) {# ifndef ONLINE_JUDGE freopen ("test. in "," r ", stdin); # e Ndif 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 ", & a [I]. x, & a [I]. y); sort (a, a + n, cmp); www.2cto.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 ;}