POJ 1065 Wooden Sticks

Posted fudanxi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ 1065 Wooden Sticks相关的知识,希望对你有一定的参考价值。

思路:

排序后依次进行贪心选择;

 

 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         node cur = nodes[0];//木棍0为当前最后用过的木棍
33         nodes[0].isUsed = true;
34         int c = 0;//启动时间 
35         while (1)
36         {
37             for (int j = 0; j<n; j++)//在未使用的木棍中,将l,w不小于当前木棍的木棍设为使用 
38             {
39                 if (nodes[j].isUsed == false)
40                 {
41                     if (nodes[j].l >= cur.l&&nodes[j].w >= cur.w)
42                     {
43                         nodes[j].isUsed = true;
44                         cur = nodes[j];
45                     }
46                 }
47             }
48             c++;//启动时间+1 
49             int j;
50             for (j = 0; j<n; j++)//寻找没有用过的木棍,标记为最后使用的,退出 
51             {
52                 if (nodes[j].isUsed == false)
53                 {
54                     cur = nodes[j];
55                     nodes[j].isUsed = true;
56                     break;
57                 }
58 
59             }
60             if (j == n)//用完了退出 
61                 break;
62         }
63         cout <<  c << endl;
64     }
65     return 0;
66 }

 

以上是关于POJ 1065 Wooden Sticks的主要内容,如果未能解决你的问题,请参考以下文章

POJ1065 Wooden Sticks

Wooden Sticks POJ 1065(简单dp)

POJ 1065 Wooden Sticks

POJ1065Wooden Sticks[DP LIS]

POJ 1065 Wooden Sticks#贪心+qsort用法

挑战程序设计竞赛2.3:Wooden Sticks POJ - 1065