码迷,mamicode.com
首页 > 其他好文 > 详细

hdu--4974--贪心

时间:2014-12-18 18:22:44      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   ar   io   color   os   sp   for   

多校的题 切了5 6题 就这道会点= =

其他都是些什么树的分治 图论的一些东西= =

这题 贪心 不难发现吧 每次都尽量选取各自都能获得1分的方案 但可能会出现1 0这种只能一个人得1分 一个人得0分得的方案。

一开始 我很sb地 wa在任意选取了2人 比较他们得分大小。。

正确姿势当然是要 从大到小的来选取。  然后剩余的继续留着选取

放入个优先队列来实现比较好

bubuko.com,布布扣
 1 #include <iostream>
 2 #include <cstring>
 3 #include <algorithm>
 4 #include <queue>
 5 using namespace std;
 6 
 7 priority_queue<int> q;
 8 
 9 void init( )
10 {
11     while( !q.empty() )
12         q.pop();
13 }
14 
15 int main()
16 {
17     cin.sync_with_stdio(false);
18     int t , n , num , ans;
19     int x , y;
20     cin >> t;
21     for( int k = 1 ; k<=t ; k++ )
22     {
23         cin >> n;
24         init( );
25         ans = 0;
26         for( int i = 1 ; i<=n ; i++ )
27         {
28             cin >> num;
29             q.push(num);
30         }
31         while( !q.empty() )
32         {
33             x = q.top();
34             if( x<=0 )
35                 break;
36             q.pop();
37             if( !q.empty() )
38             {
39                 y = q.top();
40                 q.pop();
41                 if( y<=0 )
42                 {
43                     ans += x;
44                     break;
45                 }
46                 q.push( x-y );
47                 ans += y;
48             }
49             else
50             {
51                 ans += x;
52                 break;
53             }
54         }
55         cout << "Case #" << k << ": " << ans << endl;
56     }
57     return 0;
58 }    
View Code

 

hdu--4974--贪心

标签:style   blog   http   ar   io   color   os   sp   for   

原文地址:http://www.cnblogs.com/radical/p/4172170.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!