CF140C New Year Snowmen
这道题其实吧,水,我们教练说过,不要看标签,这只是CSP第一题的题目
思路嘛,priority_queue和贪心,就这样,很水
这是代码
还有,一定要在cf上交,不然……可以看一下提交记录,有几个人的代码回来了
Code
#include <cstdio>
#include <queue>
#include <algorithm>
using namespace std;
const int MAXN = 1e6 + 5;
inline int read(){
int k = 0,f = 1;
char ch = getchar();
while(ch < '0' || ch > '9'){
if (ch == '-'){
f = -1;
}
ch = getchar();
}
while(ch >= '0' && ch <= '9'){
k = k * 10 + ch - '0';
ch = getchar();
}
return k * f;
}
inline void write(int x){
if (x < 0){
putchar('-');
x = -x;
}
if (x > 9) write(x / 10);
putchar(x % 10 + '0');
}
struct node{
int cnt,num,id;
node(){}
node(int Cnt,int Num){
cnt = Cnt,num = Num;
}
bool operator <(const node& a) const{
return cnt < a.cnt;
}
}a[MAXN];
priority_queue <node> q;
int cnt = 1;
int ans;
struct ball{
int big,mid,sma;
}k[MAXN];
bool cmp(node x,node y){
return x.num < y.num;
}
int main(){
int n;
n = read();
for (int i = 1; i <= n ; i++) a[i].num = read();
sort(a + 1,a + 1 + n,cmp);
for (int i = 1; i <= n; i++){
if (a[i].num != a[i + 1].num){
q.push(node(cnt,a[i].num));
cnt = 1;
}
else cnt++;
}
if (q.size() < 3){
printf("0");
return 0;
}
while(q.size() >= 2){
node x = q.top();q.pop();
node y = q.top();q.pop();
node z = q.top();q.pop();
x.cnt--,y.cnt--,z.cnt--;
k[++ans].big = x.num;
k[ans].mid = y.num;
k[ans].sma = z.num;
if (x.cnt) q.push(node(x.cnt,x.num));
if (y.cnt) q.push(node(y.cnt,y.num));
if (z.cnt) q.push(node(z.cnt,z.num));
}
write(ans);
putchar(10);
for (int i = 1 ; i <= ans ; i++){
int m[5];
m[1] = k[i].big;
m[2] = k[i].mid;
m[3] = k[i].sma;
sort(m + 1,m + 4);
printf("%d %d %d\n",m[3],m[2],m[1]);
}
return 0;
}
CF140C New Year Snowmen的更多相关文章
- CF140C New Year Snowmen(贪心+优先队列)
CF140C 贪心+优先队列 贪心策略:每次取出数量最多的三种球,合成一个答案,再把雪球数都-1再插回去,只要还剩下三种雪球就可以不断地合成 雪球数用优先队列维护 #include <bits/ ...
- 钠 GZY整理贪心
目录 CF140C New Year Snowmen CF161B Discounts P1842 奶牛玩杂技 CF140C New Year Snowmen #include <bits/st ...
- 「CF140C」 New Year Snowmen
题目链接 戳这 贪心+优先队列,只要每次将数量前三大的半径拿出来就好了,用优先队列维护一下 #include<bits/stdc++.h> #define rg register #def ...
- CF140CNew Year Snowmen
CF140C 题目大意:堆雪人,需要三个大小不同的雪球,现有\(n\)个给定大小的雪球,问最多堆多少个雪人 一个很明显的思路是把每种雪球出现的个数记录下来,然后直接扔到大根堆里面,每次选择剩下出现次数 ...
- Day3-E-New Year Snowmen CodeForces140C
As meticulous Gerald sets the table and caring Alexander sends the postcards, Sergey makes snowmen. ...
- CoderForce 140C-New Year Snowmen(贪心)
题目大意:有n个已知半径的雪球.堆一个雪人需要三个尺寸不同的雪球,问用这些雪球最多能堆多少个雪人? 题目分析:先统计一下每种尺寸的球的个数,从三种最多的种类中各取出一个堆成雪人,这样贪心能保证的到的数 ...
- CodeForces 140C New Year Snowmen(堆)
题面 CodeForces 题解 因为要保证两两不同,所以不能单纯的开堆来维护,堆维护一个二元组,个数为第一关键字,编号为第二关键字,对于一个相同的颜色,统计一下这个颜色的个数再用堆来维护就好了. # ...
- [Codeforces 140C] New Year Snowmen
[题目链接] https://codeforces.com/problemset/problem/140/C [算法] 显然 , 我们每次应优先考虑数量多的雪球 将雪球个数加入堆中 , 每次取出数量前 ...
- 【Codeforces 140C】New Year Snowmen
[链接] 我是链接,点我呀:) [题意] 题意 [题解] 每次都选择剩余个数最多的3个不同数字组成一组. 优先消耗剩余个数多的数字 这样能尽量让剩余的数字总数比较多,从而更加可能得到更多的3个组合 [ ...
随机推荐
- JavaScript的函数申明、函数表达式、箭头函数
JavaScript中的函数可以通过几种方式创建,如下. // 函数声明 function getName() { return 'Michael' } // 函数表达式 const getName ...
- SpringMVC Mock测试
什么是mock测试? 在测试过程中,对于某些不容易构成或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法,就是Mock测试. Servlet.Request.Response等Servle ...
- CF 526F Max Mex(倍增求LCA+线段树路径合并)
Max Mex 题目地址:https://codeforces.com/contest/1084/problem/F 然后合并时注意分情况讨论: 参考代码: #include<bits/stdc ...
- 20.DjangoRestFramework学习三之认证组件、权限组件、频率组件、url注册器、响应器、分页组件
一 认证组件 1. 局部认证组件 我们知道,我们不管路由怎么写的,对应的视图类怎么写的,都会走到dispatch方法,进行分发, 在咱们看的APIView类中的dispatch方法的源码中,有个sel ...
- 笔记||Python3之字符串格式化输出
字符串的格式化输出方法一: 常用的字符串格式化符号:%s --- 用str()函数进行字符串转换 %d --- 转成有符号十进制数 %f --- 转成浮点数(小数部分自然截断 ...
- Altium PCB二维码Logo设计(转 crazybingo)
Altium PCB二维码Logo设计 每次设计PCB的时候,都会在空白部分放Logo上去,一来板卡显得更充实,二来更有成就感一些... 今天突然想着...这两年二维码越来越火,火到快爆发,不如在板卡 ...
- [状态模式]实现stopwatch
1.模拟传统面向对象语言的状态模式实现 // Stopwatch类 状态机class Stopwatch { constructor() { this.button1 = null ...
- Vue中兄弟组件间传值-(Bus/总线/发布订阅模式/观察者)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【Feign】自定义配置
[Feign]自定义配置 转载: 自定义配置,如果在同一个工程,注意配置不要和@SpringBootApplication或@ComponentSacan放在用一个包下,就是不要被扫描上 packag ...
- 【Ubuntu 16.04.2_64】安装配置SVN
[Ubuntu 16.04.2_64]安装配置SVN 转载:https://www.cnblogs.com/yangchongxing/p/10190549.html 检查是否已安装svn # svn ...