博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CoderForce 140C-New Year Snowmen(贪心)
阅读量:5292 次
发布时间:2019-06-14

本文共 1029 字,大约阅读时间需要 3 分钟。

题目大意:有n个已知半径的雪球。堆一个雪人需要三个尺寸不同的雪球,问用这些雪球最多能堆多少个雪人?

题目分析:先统计一下每种尺寸的球的个数,从三种最多的种类中各取出一个堆成雪人,这样贪心能保证的到的数目最多。

 

代码如下:

# include
# include
# include
# include
# include
# include
using namespace std;struct Node{ int val,cnt; Node(int _val,int _cnt):val(_val),cnt(_cnt){} bool operator < (const Node &a) const{ return cnt
mp;priority_queue
q;void solve(){ int cnt=0; while(!q.empty()){ Node a=q.top(); q.pop(); if(q.empty()) break; Node b=q.top(); q.pop(); if(q.empty()) break; Node c=q.top(); q.pop(); ans[cnt][0]=a.val; ans[cnt][1]=b.val; ans[cnt][2]=c.val; ++cnt; if(a.cnt-1>0) q.push(Node(a.val,a.cnt-1)); if(b.cnt-1>0) q.push(Node(b.val,b.cnt-1)); if(c.cnt-1>0) q.push(Node(c.val,c.cnt-1)); } printf("%d\n",cnt); for(int i=0;i
::iterator it; while(!q.empty()) q.pop(); for(it=mp.begin();it!=mp.end();++it){ q.push(Node(it->first,it->second)); } solve(); } return 0;}

  

转载于:https://www.cnblogs.com/20143605--pcx/p/5164727.html

你可能感兴趣的文章
登录服务器,首先用到的5个命令
查看>>
多米诺骨牌
查看>>
区间DP 等腰三角形
查看>>
mysql 存储引擎对索引的支持
查看>>
Linq 学习(1) Group & Join--网摘
查看>>
asp.net 调用前台JS调用后台,后台掉前台JS
查看>>
【转】iOS 宏(define)与常量(const)的正确使用-- 不错
查看>>
【转】iOS开发UI篇—iPad和iPhone开发的比较
查看>>
【转】Android底层库和程序
查看>>
OnContextMenu事件(转)
查看>>
Comparación para 2019 Nueva Lonsdor K518S y K518ISE
查看>>
论文笔记——MobileNets(Efficient Convolutional Neural Networks for Mobile Vision Applications)
查看>>
从今天开始
查看>>
Attribute(特性)与AOP
查看>>
[翻译] CBStoreHouseTransition
查看>>
第三次作业
查看>>
Codeforces 962 /2错误 相间位置排列 堆模拟 X轴距离最小值 前向星点双连通分量求只存在在一个简单环中的边...
查看>>
Matrix快速幂 模板
查看>>
laravel command调用方法命令
查看>>
20162302 - 20162319 结对编程项目-四则运算(第一周)
查看>>