思路:
排序后依次进行贪心选择;
1 #include<iostream>
2 #include<algorithm>
3 using namespace std;
4 struct node {
5 int l, w;
6 bool isUsed;
7 }nodes[5000];//木棍数组
8 bool cmp(const node& n1, const node &n2)
9 {
10 if (n1.l < n2.l)
11 return true;
12 else if (n1.l == n2.l&&n1.w < n2.w)
13 return true;
14 else
15 return false;//记得这句
16 }
17 int main()
18 {
19 int t;
20 cin >> t;
21 for (int i = 0; i<t; i++)
22 {
23 int n;
24 cin >> n;
25 for (int j = 0; j<n; j++)
26 {
27 cin >> nodes[j].l >> nodes[j].w;
28 nodes[j].isUsed = false;
29 }
30
31 sort(nodes, nodes + n, cmp);
32 n