7-7 选民投票

编程统计候选人的得票数。有若干位候选人(n<=10),候选人姓名从键盘输入(候选人姓名不区分大小写,姓名最长为9个字节),若干位选民,选民每次输入一个得票的候选人的名字(姓名最长为9个字节),若选民输错候选人姓名,则按废票处理。程序自动统计各候选人的得票结果,并按照得票数由高到低的顺序排序。最后输出各选票人得票结果和废票信息。
输入格式:

先输入候选人人数n和n名候选人姓名,再输入选民人数m和m位选民的选票。
输出格式:

先根据选票结果由高到低输出各候选人得票结果,再根据废票情况输出废票信息(换行后,输出提示信息“invalid vote:”,再输出废票信息)。
输入样例1:

3
zhang
li
wang
9
Wang
Zhang
zhuang
LI
Liao
ZHANG
WANG
Wang
wang

输出样例1:

wang:4
zhang:2
li:1

invalid vote:
zhuang
Liao

输入样例2:

2
liu
yang
5
Liu
liu
YANG
yang
Liu

输出样例2:

liu:3
yang:2

用STL瞎模拟就行了

#ifdef debug
#include <time.h>
#endif#include <iostream>
#include <algorithm>
#include <vector>
#include <string.h>
#include <map>
#include <set>
#include <stack>
#include <queue>
#include <math.h>#define MAXN ((int)1e5+7)
#define ll long long int
#define INF (0x7f7f7f7f)
#define fori(lef, rig) for(int i=lef; i<=rig; i++)
#define forj(lef, rig) for(int j=lef; j<=rig; j++)
#define fork(lef, rig) for(int k=lef; k<=rig; k++)
#define QAQ (0)using namespace std;#define show(x...) \do { \cout << "\033[31;1m " << #x << " -> "; \err(x); \} while (0)void err() { cout << "\033[39;0m" << endl; }
template<typename T, typename... A>
void err(T a, A... x) { cout << a << ' '; err(x...); }namespace FastIO{char print_f[105];void read() {}void print() { putchar('\n'); }template <typename T, typename... T2>inline void read(T &x, T2 &... oth) {x = 0;char ch = getchar();ll f = 1;while (!isdigit(ch)) {if (ch == '-') f *= -1; ch = getchar();}while (isdigit(ch)) {x = x * 10 + ch - 48;ch = getchar();}x *= f;read(oth...);}template <typename T, typename... T2>inline void print(T x, T2... oth) {ll p3=-1;if(x<0) putchar('-'), x=-x;do{print_f[++p3] = x%10 + 48;} while(x/=10);while(p3>=0) putchar(print_f[p3--]);putchar(' ');print(oth...);}
} // namespace FastIO
using FastIO::print;
using FastIO::read;int n, m, Q, K;std::map<string, int> mp;
std::map<string, string> mp2;
//std::set<string> fp;
std::vector<string> fp;#define CH(x) ((x>='a' && x<='z') ? x : x-'A'+'a')int main() {#ifdef debugfreopen("test", "r", stdin);clock_t stime = clock();
#endifcin >> n;string str;while(n--) {cin >> str;string tmp = str;for(int i=0; i<(int)tmp.length(); i++)tmp[i] = CH(tmp[i]); //全部转小写mp[tmp] = 0;mp2[tmp] = str;}cin >> m;while(m--) {cin >> str;string tmp = str;for(int i=0; i<(int)tmp.length(); i++)tmp[i] = CH(tmp[i]);if(mp.find(tmp) == mp.end()) fp.push_back(str);else mp[tmp] ++;}vector<pair<int, string> > vec;for(auto it : mp)vec.push_back({ it.second, mp2[it.first]} );sort(vec.begin(), vec.end(), greater<pair<int, string> >());for(auto it : vec) cout << it.second << ":" << it.first<< endl;if(fp.size())cout << "\ninvalid vote:" << endl;for(auto s : fp) cout << s << endl;#ifdef debugclock_t etime = clock();printf("rum time: %lf 秒\n",(double) (etime-stime)/CLOCKS_PER_SEC);
#endif return 0;
}

7-7 选民投票 STL相关推荐

  1. 编程统计候选人的得票数。设有3个候选人zhang、li、wang(候选人姓名不区分大小写),10个选民,选民每次输入一个得票的候选人的名字,若选民输错候选人姓名,则按废票处理。选民投票结束后程序自动显

    编程统计候选人的得票数.设有3个候选人zhang.li.wang(候选人姓名不区分大小写),10个选民,选民每次输入一个得票的候选人的名字,若选民输错候选人姓名,则按废票处理.选民投票结束后程序自动显 ...

  2. 耶鲁大学 博弈论(Game Theory) 笔记6-纳什均衡之纳什均衡之伯川德模型与选民投票

    耶鲁大学 博弈论(Game Theory) 笔记6-纳什均衡之纳什均衡之伯川德模型与选民投票 目录 耶鲁大学 博弈论(Game Theory) 笔记6-纳什均衡之纳什均衡之伯川德模型与选民投票 伯川德 ...

  3. java模拟选民投票

    我们就模拟选民投票,当票数达到100票后,停止投票. 一.代码图 直接上代码 实体类 public class Voter {private String name;//选民名称private sta ...

  4. C语言编程题:选民投票

    选民投票 分数 6 全屏浏览题目 切换布局                                                             作者 刘仕筠 单位 成都信息工程大学 ...

  5. 编程统计候选人的得票数。设有3个候选人,Li,Zhang,Fun。 要求输入投票总数n,然后每次输入一个得票的候选人的名字(区分大小写),若选民输错候选人姓名,则按废票处理。 选民投票结束后程序自动显

    编程统计候选人的得票数.设有3个候选人,Li,Zhang,Fun. 要求输入投票总数n,然后每次输入一个得票的候选人的名字(区分大小写),若选民输错候选人姓名,则按废票处理. 选民投票结束后程序自动显 ...

  6. 7-3 选民投票 (8 分)编程统计候选人的得票数。有若干位候选人(n<=10),候选人姓名从键盘输入(候选人姓名不区分大小写,姓名最长为9个字节),若干位选民,选民每次输入一个得票的候选人的名字(

    7-3 选民投票 (8 分) 编程统计候选人的得票数.有若干位候选人(n<=10),候选人姓名从键盘输入(候选人姓名不区分大小写,姓名最长为9个字节),若干位选民,选民每次输入一个得票的候选人的 ...

  7. 案例:模拟实现选民投票过程:一群选民进行投票,每个选民只允许投一次票,并且当投票总数达到100时,就停止投票

    方法部分代码如下: import java.util.Scanner;public class Elector {//声明属性public String name;public int age;pub ...

  8. 选民投票 (15 分)

    编程统计候选人的得票数.有若干位候选人(n<=10),候选人姓名从键盘输入(候选人姓名不区分大小写,姓名最长为9个字节),若干位选民,选民每次输入一个得票的候选人的名字(姓名最长为9个字节),若 ...

  9. c语言选民投票系统,投票系统实现

    @font-face { font-family: "宋体"; }@font-face { font-family: "宋体"; }@font-face { f ...

最新文章

  1. Perl新接触的小命令
  2. Linux 用户管理相关命令
  3. mvc html根目录,c#-路由到ASP.NET MVC中的根目录
  4. node.js路由控制
  5. 关于OpenGL ES中的纹理压缩
  6. 【编程基本功练习0】zoj 3486
  7. python读取第一行设为字典_将csv读入字典,第一行成为名称
  8. 产品特点概述-驰骋工作流
  9. gulp-livereload组件使用
  10. java代码jar包混淆,proguard对java代码进行混淆
  11. c语言数据文件是,C语言数据文件操作.ppt
  12. 真牛,大神将Windows 10改造成Windows XP(EXPERIENCE Freestyle)
  13. 在Linux中安装mysql后遇到错误20008解决方案
  14. 软件外包项目这样做,快速拿下一个个项目金!
  15. BundleFusion的实现——RealSense D435i+Win10+VS2013+cuda8.0
  16. 郑州大学计算机硕士分数线,2021郑州大学考研复试线:热门专业超过400分,机械类专业仅263分...
  17. Node.js 发展史介绍与安装初体验
  18. 全栈工程师通网架构师之路
  19. 服务器系统盘选择,云服务器ecs选择什么系统盘
  20. 安装Adobe软件提示Error怎么解决?

热门文章

  1. 如何优雅的排出服务器错误
  2. 【Proteus仿真】【51单片机】步进电机控制系统设计
  3. 程序设计思维与实践 Week9 作业三道
  4. windows包管理器scoop快速安装python2或者python3
  5. google guava事件总线用法
  6. 《Junit框架的使用》
  7. wifi探针的实现和部分代码说明
  8. 树莓派简单教程(一)
  9. Educational Codeforces Round 37 (Rated for Div. 2) G
  10. 如何利用QQ营销的方法将用户圈起来?