PAT甲级真题 1054 The Dominant Color (20分) C++实现(找众数)

news/2024/5/19 22:49:51 标签: c++, 算法, 数据结构, 快速排序

题目

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

思路

找众数,简单写法是对每个元素计数,当某个元素出现次数大于等于n/2时即可认定其为众数(题目保证众数存在)。

也可以转化为找中位数,中位数即是众数,平均复杂度能降低一些,但写起来麻烦点。参考:找第k小数和中位数算法——快速排序思想,复杂度O(n) C++实现

代码

#include <iostream>
#include <unordered_map>
using namespace std;

int main(){
    int n, m;
    scanf("%d %d", &n, &m);
    int len = n * m;
    unordered_map<int, int> mmap;
    for (int i=0; i<len; i++){
        int temp;
        scanf("%d", &temp);
        mmap[temp]++;
        if (mmap[temp] >= len/2){
            cout << temp << endl;
            break;
        }
    }
    return 0;
}


http://www.niftyadmin.cn/n/905835.html

相关文章

php用putty安装吗,如何在Linux上安装PuTTY

PuTTY是一个免费开源跨平台SSH和telnet客户端&#xff0c;即使使用了20多年&#xff0c;仍然是最受欢迎的SSH客户端之一&#xff0c;尤其是在Windows平台上。Linux发行版附带内置在其终端中的SSH功能&#xff0c;但是在实际环境中&#xff0c;我看到PuTTY使用更广泛&#xff0c…

PAT甲级真题 1055 The World's Richest (25分) C++实现(数组排序,测试点超时问题)

题目 Forbes magazine publishes every year its list of billionaires based on the annual ranking of the world’s wealthiest people. Now you are supposed to simulate this job, but concentrate only on the people in a certain range of ages. That is, given the …

cf519D. A and B and Interesting Substrings(前缀和)

题意 给出$26$个字母对应的权值和一个字符串 问满足以下条件的子串有多少 首尾字母相同中间字母权值相加为0Sol 我们要找到区间满足$sum[i] - sum[j] 0$ $sum[i] sum[j]$ 开$26$个map维护一下$sum$相等的子串就可以 /**/ #include<iostream> #include<cstdio> #i…

matlab提取电压基波分量,有源电力滤波器三种基波提取方法的对比分析

随着现代电力电子技术的飞速发展&#xff0c;电网中增加了大量的非线性负载&#xff0c;如大容量变流设备、变频设备、开关电源等的广泛应用&#xff0c;导致大量谐波的产生&#xff0c;这些谐波使电网电压和电流波形发生畸变&#xff0c;使得电能质量日益下降。有源电力滤波器…

PAT甲级真题 1056 Mice and Rice (25分) C++实现(数组模拟分组淘汰赛,map记录重量排名,题意分析)

题目 Mice and Rice is the name of a programming contest in which each programmer must write a piece of code to control the movements of a mouse in a given map. The goal of each mouse is to eat as much rice as possible in order to become a FatMouse. First…

beautiful soup的用法

一、beautiful soup 是Python的一个HTML或XML的解析库。 他提供一个简单的、Python式的函数来处理导航、搜索、修改分析数等功能。它是一个工具箱&#xff0c;通过解析文档为用户提供需要抓取的数据&#xff0c;因为简单&#xff0c;所以不需要多少代码就可以写出一个完整的应用…

java中set和ge什么么意思,java的Collection和Map详解

java的Collection和Map详解线性表&#xff0c;链表&#xff0c;哈希表是常用的数据结构&#xff0c;在进行Java开发时&#xff0c;JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述&#xff0c;向读者阐述各个类的作用…

php用户管理员登录代码,标识用户登录状态

数据库think_user表新加一个status字段,用户登录后更改数据库字段来表示登录与在线状态用户登陆成功后添加如下代码:存入session,修改members()方法,代码如下:<?php Session::start();if(isset($_SESSION[admin_name])){//session存在不用验证权限$user User::get([user_n…