《算法笔记》4.2小节——算法初步->哈希 问题 B: 分组统计
作者:互联网
问题 B: 分组统计
时间限制 : 1.000 sec 内存限制 : 32 MB
题目描述
先输入一组数,然后输入其分组,按照分组统计出现次数并输出,参见样例。
输入
输入第一行表示样例数m,对于每个样例,第一行为数的个数n,接下来两行分别有n个数,第一行有n个数,第二行的n个数分别对应上一行每个数的分组,n不超过100。
输出
输出m行,格式参见样例,按从小到大排。
样例输入
1
7
3 2 3 8 8 2 3
1 2 3 2 1 3 1
样例输出
1={2=0,3=2,8=1}
2={2=1,3=0,8=1}
3={2=1,3=1,8=0}
#include <iostream>
#include <set>
#include <cstring>
using namespace std;
int couter[2000][2000];
int main() {
int n, m;
while (cin >> m) {
while (m--) {
set<int> number;
set<int> group;
int cin_number[110], cin_group[110];
memset(couter, 0, sizeof couter);
cin >> n;
for (int i = 0; i < n; ++i) {
cin >> cin_number[i];
number.insert(cin_number[i]);
}
for (int i = 0; i < n; ++i) {
cin >> cin_group[i];
group.insert(cin_group[i]);
couter[cin_group[i]][cin_number[i]]++;
}
for (auto i = group.begin(); i != group.end(); ++i) {
cout << *i << "={";
for (auto j = number.begin(); j != number.end(); ++j) {
if (j != number.begin())
cout << "," << *j << "=" << couter[*i][*j];
else
cout << *j << "=" << couter[*i][*j];
}
cout << "}" << endl;
}
}
}
return 0;
}
标签:group,couter,4.2,int,样例,number,cin,算法,哈希 来源: https://blog.csdn.net/DoMoreSpeakLess/article/details/117400896