zoukankan      html  css  js  c++  java
  • PTA(Advanced Level)1054.The Dominant Color

    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,224). 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
    

    思路

    • 简单来说这一题就是给你一个(m*n)的矩阵,让你找出其中出现超过半数的数字
    • 很容易想到的是开一个数组,用来统计每个数字出现的次数,最后再遍历一遍找出超过半数的输出,但是要注意这里出现的数字范围有可能东岸(2^{24})那么大,这种做法无疑会超时的
    • 根据这个思想,我们可以利用STL中的map容器,这样就解决了数组太大的烦恼,
    • ⚠要用scanf读取,用cin在第三个数据点会超时

    代码

    #include<bits/stdc++.h>
    using namespace std;
    map<int, int> image;
    int main()
    {
    	int m, n;
        cin >> m >> n;
    	int t;
    	for(int i=0;i<n;i++)
    		for(int j=0;j<m;j++)
    		{
    			scanf("%d", &t);    // 这里使用cin会超时噢!
    			if(image.count(t) == 0)		// 统计为0说明是第一次遇到这个数字
    				image[t] = 1;
    			else
    				image[t]++;
    		}
    	int half = m * n / 2;
    	map<int, int>::iterator it;
    	for(it=image.begin();it!=image.end();it++)
    		if(it->second > half)
    		{
    			cout << it->first;
    			break;
    		}
    	return 0;
    }
    
    

    引用

    https://pintia.cn/problem-sets/994805342720868352/problems/994805422639136768

  • 相关阅读:
    主动找智能钥匙 PKE取代RKE是大势所趋
    OBD-II Protocol -- SAE J1850 VPW PWM
    STM32F4: GENERATING A SINE WAVE
    Using PWM Output as a Digital-to-Analog Converter
    Spartan-6
    MAX II Device Compatibility with 5.0-V CMOS Devices
    ARM FPGA Extended Memory Interface
    STM32 100 pin 多个外设译码方案
    SILICA Xynergy-M4 Board -- STM32F417 meets XILINX Spartan-6
    Xilinx Platform Usb Cable
  • 原文地址:https://www.cnblogs.com/MartinLwx/p/12824386.html
Copyright © 2011-2022 走看看