当前位置: 首页 > article >正文

NOIP2007T1 统计数字

题面

题目描述

某次科研调查时得到了 n n n 个自然数,每个数均不超过 1.5 × 1 0 9 1.5 \times 10^9 1.5×109 。已知不相同的数不超过 1 0 4 10^4 104 个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。

输入

每组输入数据包含 n + 1 n+1 n+1 行;

第一行是整数 n n n ,表示自然数的个数;

2 2 2 ~ n + 1 n+1 n+1 行,每行一个自然数。

输出

输出包含 m m m 行( m m m n n n 个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。

样例输入

8
2
4
2
4
5
100
2
100

样例输出

2 3
4 2
5 1
100 2

提示

1 ≤ n ≤ 2 6 1 \le n \le 2^6 1n26 ,每个数均不超过 1.5 × 1 0 9 1.5 \times 10^9 1.5×109

思路

本来以为要用堆排序,因为没法用桶。
后来想了想,其实 sort 也能解决,只需要判断一下关系就可以统计相同数字的数量了。
代码如下。

AC代码

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
ll a[200001],n,t=1;

int main()
{
    scanf("%lld",&n);
    for(ll i=1;i<=n;++i)
        scanf("%lld",a+i);
    sort(a+1,a+n+1);
    for(ll i=2;i<=n;++i)
    {
        if(a[i]==a[i-1]) t++;
        else printf("%lld %lld\n",a[i-1],t),t=1;
    }
    printf("%lld %lld\n",a[n],t),t=1;
    return 0;   
}

http://www.kler.cn/a/397887.html

相关文章:

  • LSTM(长短期记忆网络)详解
  • vue-router的push和replace的区别
  • SystemVerilog学习——构造函数new
  • 聊聊Flink:Flink的分区机制
  • arm64架构的linux 配置vm_page_prot方式
  • 学习threejs,使用TWEEN插件实现动画
  • Android 配置默认输入法
  • Scala中的迭代器
  • 如何找出爬取网站的来源IP呢?
  • 对接阿里云实人认证
  • UG Motion学习笔记
  • 【AI图像生成网站Golang】JWT认证与令牌桶算法
  • 在 Linux 系统上部署 Oracle 数据库涉及多个步骤
  • AI技术如何助力电商平台提升销售效率与用户体验?——创新应用、挑战与未来发展趋势
  • 【代码随想录回溯算法|子集问题】
  • 排序算法(基础)大全
  • 网络工程实验四:NAT的配置
  • 【MongoDB】MongoDB的核心-索引原理及索引优化、及查询聚合优化实战案例(超详细)
  • 【基于轻量型架构的WEB开发】课程 13.2.4 拦截器 Java EE企业级应用开发教程 Spring+SpringMVC+MyBatis
  • 机器学习:XGBoost模型(升级版)——高效且强大的树形模型
  • 安全见闻4
  • 《C语言程序设计现代方法》note-5 数组
  • 【开源免费】基于SpringBoot+Vue.JS卫生健康系统(JAVA毕业设计)
  • 【C++】OGRE:面向对象图形渲染库配置与示例
  • 2024山西省网络建设运维第十八届职业院校技能大赛解析答案(5. nginx 和 tomcat 服务)
  • 模型压缩相关技术概念澄清(量化/剪枝/知识蒸馏)