6.4 PAT A1054 The Dominant Color (20分)(map 用法)

1054 The Dominant Color (20分)

Behind the scenes in the computer's memory, color is always talked about as a series of 24 bits of information for each pixel. In an image, the color with the largest proportional area is called the dominant color. A strictly dominant color takes more than half of the total area. Now given an image of resolution M by N (for example, 800×600), you are supposed to point out the strictly dominant color.

Input Specification:

Each input file contains one test case. For each case, the first line contains 2 positive numbers: M (≤800) and N (≤600) which are the resolutions of the image. Then N lines follow, each contains M digital colors in the range [0,2​24​​). It is guaranteed that the strictly dominant color exists for each input image. All the numbers in a line are separated by a space.

Output Specification:

For each test case, simply print the dominant color in a line.

Sample Input:

5 3
0 0 255 16777215 24
24 24 0 0 24
24 0 24 24 24

Sample Output:

24

题意为求给出颜色中出现次数最多的颜色。

利用map给出颜色与出现次数的映射求解。

参考代码:

#include <iostream>
#include <map>
using namespace std;
map<int,int> count;
int main()
{
	int m,n,color;
	while(scanf("%d%d",&m,&n)!=EOF)
	{
		for(int i=0;i<n;++i)
		{
			for(int j=0;j<m;++j)
			{
				scanf("%d",&color); //输入数字 
				count[color]++;
			}
		}
		int k=0,Max=0;
		for(map<int,int>::iterator it=count.begin();it!=count.end();++it)
		{
			if(it->second>Max)
			{
				k=it->first;  //获取第一关键字 即数字 
				Max=it->second;  //获取第二关键字,即次数 
			}
		}
		printf("%d\n",k); 
	}
	return 0;
 } 

猜你喜欢

转载自blog.csdn.net/qq_43590614/article/details/105489974