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

[Huffman]Hdu 2527 Safe Or Unsafe

时间:2015-05-21 17:13:44      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:

 

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <queue>
 4 #include <cstring>
 5 #include <string>
 6 using namespace std;
 7 
 8 int t,len,k,num,sum;
 9 int a[27];
10 bool vis[27];
11 string str;
12 priority_queue<int, vector<int>,greater<int> > pq;
13 
14 int main(){
15 
16     scanf("%d",&t);
17     while(t--){
18         num=0;
19         sum=0;
20         memset(a,0,sizeof a);
21         memset(vis,0,sizeof vis);
22         while(!pq.empty())pq.pop();
23 
24         
25         scanf("%d",&k);
26         cin>>str;
27 
28         len=str.length();
29         for(int i=0;i<len;i++){
30             a[ str[i]-a]++;
31             vis[ str[i]-a]=1;
32         }
33         for(int i=0;i<=25;i++){
34             if(vis[i]){
35                 pq.push(a[i]);
36                 num++;
37             }
38         }
39         if(num==1)
40             sum=pq.top(); //Pay attention to the situation !
41         else{
42             for(int i=1;i<num;i++){
43                 int t1=pq.top();pq.pop();
44                 int t2=pq.top();pq.pop();
45                 sum+=t1+t2;pq.push(t1+t2);
46             }
47             
48         }
49 
50         if(sum<=k)printf("yes\n");
51         else printf("no\n");
52     }
53 }

 

[Huffman]Hdu 2527 Safe Or Unsafe

标签:

原文地址:http://www.cnblogs.com/bruce27/p/4519937.html

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