《算法笔记》4.2小节——算法初步->哈希 问题 B: 分组统计
2021/5/30 20:53:39
本文主要是介绍《算法笔记》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; }
这篇关于《算法笔记》4.2小节——算法初步->哈希 问题 B: 分组统计的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27消息中间件底层原理资料详解
- 2024-11-27RocketMQ底层原理资料详解:新手入门教程
- 2024-11-27MQ底层原理资料详解:新手入门教程
- 2024-11-27MQ项目开发资料入门教程
- 2024-11-27RocketMQ源码资料详解:新手入门教程
- 2024-11-27本地多文件上传简易教程
- 2024-11-26消息中间件源码剖析教程
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器