题目链接:CodeForces #100  C

题意:现在给出n个snowball的半径,3个半径严格递增或递减的snowball,可以组成1个snowmen。问最多能组成多少个snowmen。并且按照半径递减的顺序输出每个snowmen的组成。

思路:嗯...每次都从前三个个数最多的snowball里选择,最后组成的snowmen最多...

...可以用优先队列写..但是感觉set+map写的太优雅了...map当然不等于数组了...哼。

  1. #include <stdio.h>
  2. #include <iostream>
  3. #include <set>
  4. #include <map>
  5. #include <vector>
  6. #include <algorithm>
  7. using namespace std;
  8.  
  9. typedef pair<int, int> pair_;
  10. map<int, int> mp;
  11. set<pair_> st;
  12. vector<int> ans;
  13.  
  14. int main() {
  15. //freopen("in.cpp", "r", stdin);
  16. int n;
  17. while(~scanf("%d", &n)) {
  18. mp.clear();
  19. st.clear();
  20. ans.clear();
  21. int temp;
  22. for (int i=0; i<n; ++i) {
  23. scanf("%d", &temp);
  24. mp[temp]++;
  25. }
  26. map<int, int>::iterator mpit;
  27. for (mpit = mp.begin(); mpit != mp.end(); ++mpit) {
  28. //st.insert(pair_((*mpit).second, (*mpit).first));
  29. st.insert(pair_(mpit->second, mpit->first));
  30. }
  31. while(st.size() >= 3) {
  32. pair_ now[3];
  33. for (int i=0; i<3; ++i) {
  34. now[i] = *--st.end();
  35. st.erase(--st.end());
  36. ans.push_back(now[i].second);
  37. }
  38. for (int i=0; i<3; ++i) {
  39. if (--now[i].first) st.insert(now[i]);
  40. }
  41. sort(ans.rbegin(),ans.rbegin()+3);
  42. }
  43. printf("%d\n", ans.size()/3);
  44. for (int i=0; i<ans.size(); i+=3) {
  45. printf("%d %d %d\n", ans[i], ans[i+1], ans[i+2]);
  46. }
  47. }
  48. return 0;
  49. }

CodeForces #100 C 贪心+STL的更多相关文章

  1. CodeForces - 158B.Taxi (贪心)

    CodeForces - 158B.Taxi (贪心) 题意分析 首先对1234的个数分别统计,4人组的直接加上即可.然后让1和3成对处理,只有2种情况,第一种是1多,就让剩下的1和2组队处理,另外一 ...

  2. [Codeforces 1246B] Power Products (STL+分解质因数)

    [Codeforces 1246B] Power Products (STL+分解质因数) 题面 给出一个长度为\(n\)的序列\(a_i\)和常数k,求有多少个数对\((i,j)\)满足\(a_i ...

  3. Codeforces Round #595 (Div. 3)D1D2 贪心 STL

    一道用STL的贪心,正好可以用来学习使用STL库 题目大意:给出n条可以内含,相交,分离的线段,如果重叠条数超过k次则为坏点,n,k<2e5 所以我们贪心的想我们从左往右遍历,如果重合部分条数超 ...

  4. Codeforces 732e [贪心][stl乱搞]

    /* 不要低头,不要放弃,不要气馁,不要慌张 题意: 给n个插座,m个电脑.每个插座都有一个电压,每个电脑都有需求电压. 每个插座可以接若干变压器,每个变压器可以使得电压变为x/2上取整. 有无限个变 ...

  5. CodeForces - 620C Pearls in a Row 贪心 STL

    C. Pearls in a Row time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  6. codeforces 724D(贪心)

    题目链接:http://codeforces.com/contest/724/problem/D 题意:给定一个字符串和一个数字m,选取一个一个子序列s,使得对于字符串中任意长度为m的子序列都至少含有 ...

  7. HDU 4864 Task (贪心+STL多集(二分)+邻接表存储)(杭电多校训练赛第一场1004)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4864 解题报告:有n台机器用来完成m个任务,每个任务有一个难度值和一个需要完成的时间,每台机器有一个可 ...

  8. CodeForces 651A Joysticks 贪心

    A. Joysticks time limit per test 1 second memory limit per test 256 megabytes input standard input o ...

  9. Codeforces 626G Raffles(贪心+线段树)

    G. Raffles time limit per test:5 seconds memory limit per test:256 megabytes input:standard input ou ...

随机推荐

  1. Count Primes ----质数判断

    质数的判断 埃拉托斯特尼筛法: 算法的过程如下图所示: 我们从2开始遍历到根号n,先找到第一个质数2,然后将其所有的倍数全部标记出来,然后到下一个质数3,标记其所有倍数,依次类推,直到根号n,此时数组 ...

  2. Python 面向对象编程进阶

    静态方法 只是名义上归类管理,实际上在静态方法里访问不了类或实例中的任何属性 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在 ...

  3. tp生成验证码

    视图层: <input type="text" name="code" value="" />        <img o ...

  4. storyboard

    一,代码动态改写 1,一般程序启动就自动执行 main.storyboard 也可以在AppDelegate改写 - (BOOL)application:(UIApplication *)applic ...

  5. 【C解毒】滥用变量

    见:[C解毒]滥用变量

  6. Dundas控件的X轴字体竖排版

    dundas 坐标轴的问题 x轴的值怎么让他竖排显示?我晓得dundas可以旋转显示,但是不是我要的效果 如下 ---------------------------------------  第   ...

  7. Android TextWatcher监控EditText中的输入内容并限制其输入字符个数

    布局中EditText在android布局中经常用到,对EditText中输入的内容也经常需要进行限制,我们可以通过TextWatcher去观察输入框中输入的内容,作个笔记. 主布局: <?xm ...

  8. sudo service docker start

    sudo service docker start sudo docker run -t -i ubuntu:14.04 /bin/bash docker ps -l CONTAINER ID IMA ...

  9. [Python]处理windows下多级目录文件,上传到Linux服务器

    #-*- coding: utf-8 -*- __author__ = 'tsbc' import sys reload(sys) sys.setdefaultencoding('utf-8') im ...

  10. 解决 .so文件64与32不兼容问题

    http://blog.csdn.net/vhawk/article/details/49964475 android64位机子兼容32位.so库文件 2016-11-25 19:39 5416人阅读 ...