2014第六届华为编程大赛初赛第一轮

/***********************************************************************
1.投票问题
输入若干候选人,以及投票,格式如下,输出(按输入候选人输入顺序)候选人以及得票,以及
无效票数。
Input:
addCandidate xx1
addCandidate xx2
addCandidate xx3
addCandidate xx4
addCandidate xx5
addCandidate xx6

vote xx2
vote xx2
vote xx3
vote xx3
vote xx4
vote xx6
vote xx7
vote xx1
vote xx1

Output:
xx1 2
xx2 2
xx3 2
xx4 1
xx6 1
1
**********************************************************************/
#include <iostream>
#include <cstdio>
#include <vector>
#include <string>
#include <sstream> //istringstream
#include <map>
#include <cstring>
using namespace std;

int main()
{
	map<string,int> candidate;
	string str;
	while(getline(cin,str) && str.size()!=0)
	{
		str=str.substr(strlen("addCandidate")+1,str.size()-1);
		candidate.insert(pair<string,int>(str,0));
	}
	int size1=candidate.size();//投票前的 候选人数
	while(getline(cin,str) && str.size()!=0)
	{
		str=str.substr(strlen("vote")+1,str.size()-1);
		++candidate[str];
	}
	int size2=candidate.size(); //投票后的 候选人数 可能无效的
	int i=0;
	map<string,int>::iterator iter=candidate.begin();
	while(i < size1)
	{
		if(iter->second) //有票数的输出
			cout<<iter->first<<" "<<iter->second<<endl;
		++iter;
		i++;
	}
	int cnt=0;
	while(i < size2) //i=size1
	{
		cnt += iter->second;
		i++;
		iter++;
	}
	cout<<cnt<<endl;
	return 0;
}

/*************************************************************
2.筷子问题
输入n(筷子数),输出不成对的筷子的长度,无效数据或者没有不成对
的筷子输出-1(没有换行),若有多个,输出一个任意一个即可。
Intput:
7
1 2 2 1 3 3 2
Output:
2
**************************************************************/
#include <iostream>
#include <map>
using namespace std;

int main()
{
	int num;
	cin>>num;
	int *a=new int[num];
	int i=0;
	map<int,int> imap;
	while( i<num && cin>>a[i])
	{
		++imap[a[i]];
		i++;
	}
	if(i!=num)
	{
		cout<<-1<<endl;
		return 0;
	}
	for(map<int,int>::iterator iter= imap.begin();iter !=imap.end();++iter)
	{
		if(iter->second & 1)//为奇数
		{
			cout<<iter->first<<endl;
			return 0;
		}
	}
	cout<<-1<<endl;
	delete [] a;
	a=NULL;
	return 0;
}

2014第六届华为编程大赛初赛第一轮

时间: 2024-10-16 22:42:27

2014第六届华为编程大赛初赛第一轮的相关文章

2014第六届华为编程大赛初赛第四轮

/*********************************************************************** 第一题 求n个整数的最大公约数 输入 第一行: n个整数 第二行:各个整数 以空格隔开 输出:公约数 例子: input: 4 10 15 20 25 output: 5 **********************************************************************/ #include <stdio.h>

【结果发布】第六届SeedCoder编程大赛初赛结果发布

微软俱乐部科技文化月seedcoder2014编程大赛已经初审完成. 评审小组选出最棒的作品进入决赛(现场答辩+陈述环节,由评委现场打分).终于排名由"初赛分数+现场答辩分"决定. 决赛答辩时间为:2014年4月20日(本周日)  晚上19:00     有讲座票派发 地点: 34号楼103教室 以下为初赛结果(依据队名排序): 算法组获奖的队伍名单 队伍 学院 年级 奖项 YOLO 计算机科学与project学院 大二 參加答辩 aaaaaa 软件学院 大三 參加答辩 mg 软件学院

华为第六届创新编程大赛第一轮 电话本题目

比赛的时候提交不了,先把题目记下来 电话号码本 描述: 实现一个简易电话号码本的程序,存储电话号码,可以通过名字获取电话号码,同时也可以通过电话号码获取对应的名字.说明:    1.名字由英文字母组成,区分大小写.1<=字母数量<=20    2.名字和电话号码一一对应    3.名字和电话号码均唯一    4.电话号码长度n,由数字组成.1<= n <=20    5.电话号码本中最大的记录条数为200运行时间限制: 无限制 内存限制:  无限制 输入:  输入命令字如下:sav

CodeM美团点评编程大赛初赛B轮 黑白树【DFS深搜+暴力】

[编程题] 黑白树 时间限制:1秒 空间限制:32768K 一棵n个点的有根树,1号点为根,相邻的两个节点之间的距离为1.树上每个节点i对应一个值k[i].每个点都有一个颜色,初始的时候所有点都是白色的. 你需要通过一系列操作使得最终每个点变成黑色.每次操作需要选择一个节点i,i必须是白色的,然后i到根的链上(包括节点i与根)所有与节点i距离小于k[i]的点都会变黑,已经是黑的点保持为黑.问最少使用几次操作能把整棵树变黑. 输入描述: 第一行一个整数n (1 ≤ n ≤ 10^5) 接下来n-1

CodeM美团点评编程大赛初赛A轮

因为语文太差弃赛,第一个追及问题看不懂我就弃赛了.打进复赛确实挺难的,补一下题,锻炼下就行了. 身体训练 时间限制:1秒 空间限制:32768K 美团外卖的配送员用变速跑的方式进行身体训练.他们训练的方式是:n个人排成一列跑步,前后两人之间相隔 u 米,每个人正常速度均为 v 米/秒.当某个配送员排在最后的时候,他需要以当时自己的最高速度往前跑,直到超过排头的人 u 米,然后降回到原始速度 v 米/秒.每个人最初的最高速度为c[i] 米/秒,每轮衰减d[i] 米/秒,也就是说,如果i是第j个跑的

【大坑特坑】第六届华为“创新杯”编程大赛初赛题目(第五场)

简直没法吐槽华为的服务器质量了,登一次半小时,提交一次等半小时,然后第二个题的结果还不知道呢,服务器就挂了... 题目本身倒是还挺简单的. A题是鸡兔同笼问题: 给出鸡和兔子的头数和脚数(可能不对),让你判断鸡的个数和兔子的个数..小学经典问题. 关键是不合法的情况,总共有4种. 1.头比脚多.. 2.脚是奇数= = 3.脚>4*头或者脚<2*头. so.出来了. #include <iostream> #include <cstring> #include <c

第六届华为创新杯编程大赛第二轮(2014.4.29)

第一题:外星人比数的大小 来自星星的都教授除了所有感官比地球人高出七倍,始终容颜不老以外,还拥有一项在地球人看来特别神奇的能力,他会瞬间(0.00000000000000000000001s以内)按照他的规则比较地球人熟悉的两个十进制数字的大小,他比较的规则如下:1.将要比较的两个数字分别转换成二进制数字:2.计算两个二进制数字中1的个数,个数多的数字为两者中的大者:3.负数按照其绝对值进行比较:请利用地球人发明的计算机程序逼近都教授的特异功能,实现时可以有以下约束:1.输入数据为范围在-327

第六届华为创新杯编程大赛-进阶1第1轮

洞穴逃生 描述: 精灵王子爱好冒险,在一次探险历程中,他进入了一个神秘的山洞.在洞穴深处,精灵王子不小心触动了洞穴内暗藏的机关,整个洞穴将很快塌陷,精灵王子必须尽快逃离洞穴.精灵王子的跑步速度为17m/s,以这样的速度可能是无法逃出洞穴的.庆幸的是精灵王子拥有闪烁法术,可在1s内移动60m,不过每次使用闪烁法术都会消耗魔法值10点.精灵王子的魔法值恢复的速度为4点/s,只有处在原地休息状态时才能恢复. 现在已知精灵王子的魔法初值M,他所在洞穴中的位置与洞穴出口之间的距离S,距离洞穴塌陷的时间T.

2014年百度之星程序设计大赛 - 初赛(第一轮) hdu Grids (卡特兰数 大数除法取余 扩展gcd)

题目链接 分析:打表以后就能发现时卡特兰数, 但是有除法取余. f[i] = f[i-1]*(4*i - 2)/(i+1); 看了一下网上的题解,照着题解写了下面的代码,不过还是不明白,为什么用扩展gcd, 不是用逆元吗.. 网上还有别人的解释,没看懂,贴一下: (a / b) % m = ( a % (m*b)) / b 笔者注:鉴于ACM题目特别喜欢M=1000000007,为质数: 当gcd(b,m) = 1, 有性质: (a/b)%m = (a*b^-1)%m, 其中b^-1是b模m的逆