算法提高 色盲的民主

n个色盲聚在一 起,讨论一块布的颜色。尽管都是色盲,却盲得各不相同。每个人都有自己的主张,争论不休。最终,他们决定采取民主投票的方式决定布的颜色,不管布同不同 意。某种颜色用字符串表示(字符串为颜色单词或词组,也就是可能有被空格隔开的两个单词组成的颜色词组),只要字符串不同,程序即判断颜色不同。现在给出 这n个人所选择的颜色,输出最有可能的颜色(也就是获得投票最多的颜色),如果有多个颜色获得了最多的投票,则将它们按字典序分行全部输出。

输入格式:

第一行一个正整数n,表示色盲的人数

接下来n行,每行一句话

输出格式:

若干行,获得投票最多的颜色,按字典序输出

输入样例:

若干行,获得投票最多的颜色,按字典序输出

5
red
blue
black
black
blue

输出样例:

在这里给出相应的输出。例如:

black
blue

数据规模和约定n<=1000

颜色单词最多20个字符,只包含小写字母或者空格

方法:

先建立一个二维数组arr,在输入每个颜色时,若颜色和数组中的任意颜色不同,则新增一行并在新的一行插入这个颜色,若相同,则在对应的行插入这个颜色。再建立一个数组max,最后遍历二维数组的行,每行的长度代表相同颜色的个数,只需将最大的长度的颜色插入max数组。这个题有个细节需要注意,因为输入的颜色是可能有空格的,所以我们要以行输入字符串(getline)

代码:

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
bool cmp(string a, string b)
{return a < b;
}
int main()
{int n,flag=0,m=0;string t;vector<vector<string> >arr;//建立一个二维数组cin >> n;getchar();for (int i = 0; i < n; i++){flag = 0;getline(cin, t);//以行输入字符串for (int j = 0; j < arr.size(); j++){flag = 0;if (t == arr[j][0]){arr[j].push_back(t);//相同就在对应的行后面插入flag = 1;break;}}if (flag == 0)//不同就在新增一行,并且插入这个颜色{arr.push_back(vector<string>());//新增一行arr[arr.size() - 1].push_back(t);}}vector<string>max;for (int i = 0; i < arr.size(); i++){if (arr[i].size()>m){max.clear();//清空数组max.push_back(arr[i][0]);m = arr[i].size();}else if (arr[i].size() == m){max.push_back(arr[i][0]);//并列时插入并列颜色}}sort(max.begin(), max.end(), cmp);for (int i = 0; i < max.size(); i++){cout << max[i] << endl;}return 0;
}

算法提高 色盲的民主相关推荐

  1. 色盲java_Java实现 蓝桥杯VIP 算法提高 色盲的民主

    算法提高 色盲的民主 时间限制:1.0s 内存限制:256.0MB  色盲的民主 问题描述 n个色盲聚在一起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同.每个人都有自己的主张,争论不休.最终,他 ...

  2. JAVA 蓝桥杯 算法提高 色盲的民主

    JAVA 蓝桥杯 算法提高 色盲的民主 资源限制 时间限制:1.0s 内存限制:256.0MB  色盲的民主 问题描述 n个色盲聚在一起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同.每个人都有自 ...

  3. 蓝桥杯 算法提高 色盲的民主

    算法提高 色盲的民主   时间限制:1.0s   内存限制:256.0MB       色盲的民主 问题描述 n个色盲聚在一起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同.每个人都有自己的主张, ...

  4. 蓝桥杯 ADV-130 算法提高 色盲的民主

    问题描述 n个色盲聚在一起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同.每个人都有自己的主张,争论不休.最终,他们决定采取民主投票的方式决定布的颜色,不管布同不同意.某种颜色用字符串表示(字符串为 ...

  5. 问题 : 色盲的民主

    题目描述 算法提高  色盲的民主    时间限制:1.0s     内存限制:256.0MB        色盲的民主 问题描述 n个色盲聚在一  起,讨论一块布的颜色.尽管都是色盲,却盲得各不相同 ...

  6. 算法提高 学霸的迷宫

    算法提高 学霸的迷宫 时间限制:1.0s 内存限制:256.0MB 问题描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二 ...

  7. 算法提高 邮票面值设计

    算法提高 邮票面值设计 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤13)种邮票的情况下(假定所有的邮票数量都足够),如何设计邮 ...

  8. 算法提高课-图论-有向图的强连通分量-AcWing 367. 学校网络:强连通分量、tarjan算法

    文章目录 题目解答 题目来源 题目解答 来源:acwing 分析: 第一问:通过tarjan算法求出强连通分量并且缩点后,统计入度为0的点的个数p即可. 第二问,至少加几条边才能使图变成强连通分量?这 ...

  9. 蓝桥杯练习系统习题-算法提高2

    文章推荐 精选java等全套学习资源 精选java电子图书资源 精选大数据学习资源 java项目练习精选 蓝桥杯练习系统习题-算法提高2 题目搜索方式:Ctrl+F--> 输入题目名称-> ...

最新文章

  1. 返回数据给上一个活动
  2. 【car】购买新能源电动汽车的几个注意事项
  3. Android及java中list循环添加时覆盖的问题-20171021
  4. 查看Hive SQL执行日志
  5. javascript 基础下
  6. 解决Button自动刷新页面的问题
  7. C语言程序怎么保存文件,急求如何将下列C语言程序数据存储到文件中?
  8. 经典算法题每日演练——第七题 KMP算法
  9. Hive基本查询语法
  10. CAN总线分析仪使用及调试方式
  11. 黑马程序员-IT学生解惑真经-想做程序员或者正在迟疑的同学可以看一下,很有帮助的一篇文章
  12. 【编程学习】每天进步一点点,编程学习之路:一款单词转MP3制作软件,单词随身听制作工具v1.0.1
  13. .NET Core剪裁器Zack.DotNetTrimmer升级瘦身引擎,并支持剪裁计划的录制和回放
  14. ERR_CACHE_MISS的解决方案
  15. 2021年服创国赛参赛小结
  16. 网上信息抽取技术纵览
  17. 【博弈论】POJ[2348]Euclid's Game
  18. 淘宝图片加载不出来案件
  19. redmi ax6s刷机体验和救砖
  20. 原码、反码、补码的互相转换

热门文章

  1. 【C Primer Plus】美国体积测量系统
  2. ASP.NET core 搭建于 Deepin 2015.4 记录
  3. Lab3因而起——对正则表达式的学习(一)
  4. 计算机科学与技术 代号,仪器科学与技术(学科代号0804).pdf
  5. 架构师之中台思维_系统发展之路_结果和抽象之间平衡的艺术
  6. KNN算法(附鸢尾花分类实现)
  7. esp8266测试1.44英寸TFT屏(驱动7735)的demo
  8. SpringBoot的数据库连接池
  9. 阐述:nmn的全称是什么,w+nmn和nmn的区别
  10. 人工智能基础 作业4