2015浙工大校赛-Problem F: 数数字(map)

题目链接:http://acm.zjut.edu.cn/onlinejudge/problem.php?cid=1101&pid=5

题面:

Problem F: 数数字

Time Limit: 5 Sec   Memory Limit: 64 MB
Submit: 550   Solved: 56
[ Submit][ Status][ Web Board]

Description

t_xliang非常讨厌数数字,这点居然被xsj4cs发现了。可恶的xsj4cs竟然用程序随机生成了一大堆数字叫t_xliang数!
给定一个由整数组成的多重集(元素可重复),现在有若干个查询,每个查询包含一个整数x,求这个x在集合中出现的次数

Input

多组数据,每组数据第一行是一个整数n(n<=100000)
接下来n行,每行一个整数x(0<=x<=10^16),表示集合中的元素.
接下来一个整数m(m<=100000)
接下来m行,每行一个整数y,(0<=y<=10^16) 表示查询。

Output

对于每个查询输出一个整数,表示出现的次数

Sample Input

10
1 
2
3
3
5
5
6
6
9
9
5
1
2
3
4
5

Sample Output

1
1
2
0
2

HINT

1.当整数超过2^31,又小于2^63时,可用long long表示(VC6.0编译通不过的,试试__int64,但提交时请改回long long)

2.数据输入量大,考虑用scanf输入,格式为

scanf("%d",&n); //n为int型

scanf("%lld",&n); //n为long long型


题解:裸的map,就是读入的时候小心点就行。

代码:

#include <iostream>
#include <cstring>
#include <cstdio>
#include <string>
#include <iomanip>
#include <vector>
#include <map>
#include <set>
#include <algorithm>
#include <queue>
using namespace std;

int main()
{
	int n,m;
	long long int tmp;
	while(scanf("%d",&n)!=EOF)
	{
	   map <long long int,int> store;
	   for(int i=0;i<n;i++)
	   {
	       scanf("%lld",&tmp);
	       store[tmp]++;
       }
       scanf("%d",&m);
       for(int i=0;i<m;i++)
       {
         scanf("%lld",&tmp);
         printf("%d\n",store[tmp]);
       }
    }
	return 0;
}



你可能感兴趣的:(入门,map,水题,简单题,最水题)