• 洛谷P1407 工资


    洛谷P1407 工资

    本题地址: http://www.luogu.org/problem/show?pid=1407

    题目描述

    有一家世界级大企业,他们经过调查,发现了一个奇特的现象,竟然在自己的公司里,有超过一半的雇员,他们的工资完全相同!
    公布了这项调查结果后,众多老板对于这一现象很感兴趣,他们发现在自己的公司也存在有这样的现象——超过一半的雇员工资都是x。老板们都很想知道这个x是多少,请你帮忙计算一下。

    输入输出格式

    输入格式:

    输入:(gold.in)
    第一行输入一个t,表示有t家公司找你帮忙判断。
    之后t行,第i行的第一个数字为Ai表示第i个公司的雇员数,之后Ai个数字表示雇员的工资。

    输出格式:

    输出:(gold.out)
    共输出t行,第i行表示第i个公司的x。(如题意表述)

    输入输出样例

    输入样例#1:

    2
    5 0 2 0 2 2
    4 2 3 3 3

    输出样例#1:

    2
    3

    说明

    数据范围:
    t<=10,且员工的资产是10^9以内的非负整数。
    70%数据满足Ai<=1000
    100% 数据满足Ai<=1000000内存限制 1MB

    【思路】

       因为有内存限制所以用map会爆内存。

       这个题目的突破口在于求的是出现次数超过一半的数字x(而非飞翔同学说的求众数),所以x一定会有连续,我们只需要求出连续长度最长的数字即可。

    【代码】

     1 #include<iostream>
     2 #include<map>
     3 using namespace std;
     4 
     5 int n;
     6 
     7 int main() {
     8     ios::sync_with_stdio(false);
     9     int T; cin>>T;
    10     while(T--) {
    11         int x,a=0,A;
    12         cin>>A;
    13         bool f=false;
    14         for(int i=0;i<A;i++) {
    15             int u; cin>>u;
    16             if(a==0) x=u;
    17             if(x==u) a++; else a--;
    18         }
    19         cout<<x<<"
    ";
    20     }
    21     return 0;
    22 }
  • 相关阅读:
    bzoj2751
    bzoj1483
    bzoj1011
    bzoj1412
    bzoj1820
    bzoj1295
    bzoj3444
    Java--Exchanger用于进行线程间的数据交换
    Java--Semaphore控制并发线程数量
    Java--Spring AOP 源码散点记录(最后整理成一篇博客)
  • 原文地址:https://www.cnblogs.com/lidaxin/p/4884255.html
Copyright © 2020-2023  润新知