(二叉搜索树)
图像的灰度直方图是反映一幅图片中各灰度级像素出现的频率与灰度级之间的关系,也就是说,把这幅图片中每一个像素出现的次数统计出来。请根据给出的灰度值矩阵统计出此图的灰度直方图,即统计每一个灰度值出现的频数。
输入格式:
每个测试包含一个测试样例,第一行给出矩阵的行数m和列数n,以空格隔开,以下输入一个灰度值矩阵,灰度性质之间以空格隔开,灰度值取值范围为0-255。
输出格式:
对每个测试用例中的每一个灰度值,以 灰度值v:出现频数t 的格式在一行中输出该灰度值v及其在矩阵中出现的次数t。要求按灰度值的升序输出,末尾无多余空格。
输入样例:
4 5
1 3 7 9 12
4 4 8 10 12
4 3 8 9 10
1 4 10 12 8
输出样例:
在这里给出相应的输出。例如:
1:2
3:2
4:4
7:1
8:3
9:2
10:3
12:3
题解:
#include<iostream>
#include<map> //map的底层是平衡二叉搜索树,符合题意要求,无重复值,自动排序
using namespace std;
int main()
{
int m,n;
cin>>m>>n;
map<int,int> result; //map<key,val>
for(int i = 0;i < m*n;i++){
int x;
cin>>x;
result[x]++; //相当于是map[key]的val++,
}
map<int,int>::iterator it; //迭代器访问元素
for(it = result.begin();it!=result.end();it++){
cout<<it->first<<":"<<it->second<<endl;
}
return 0;
}