TYVJ P1036 统计数字 Label:坑!!!(用queue+map做出来的水)

时间:2022-08-22 16:24:10

背景

NOIP2007年提高组第一题

描述

某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。

输入格式

    输入包含n+1行:
    第1行是整数n,表示自然数的个数。
    第2~n+1行每行一个自然数。

输出格式

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

测试样例1

输入







100 

100

输出

2 3 
4 2 
5 1 
100 2

备注

    40%的数据满足:1<=n<=1000
    80%的数据满足:1<=n<=50000
    100%的数据满足:1<=n<=200000,每个数均不超过1 500 000 000(1.5*10^9)

代码

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<vector>
#include<queue>
#include<map>
using namespace std; struct cmp{
bool operator ()(int &a,int &b){
return a>b;//最小值优先
}
}; map<int,int> m;
priority_queue<int,vector<int>,cmp> que;
int N,a[200005]; int main(){
// freopen("01.txt","r",stdin);
scanf("%d",&N);
for(int i=1;i<=N;i++){
int x=0;
scanf("%d",&x);
if(m[x]==0){
que.push(x);
}
++m[x];
}
while(!que.empty()){
int x=que.top();que.pop();
printf("%d %d\n",x,m[x]);
}
return 0;
}

  

优先队列比较奇怪,必须这样定义比较函数:

 struct cmp{
bool operator ()(int &a,int &b){
return a>b;//最小值优先
}
};

而不能这样:

 bool cmp(int a,int b){
return a<b;
}

还有优先队列的比较函数方向跟sort之类的是相反的('<'和'>'不一样)

看了下题解直接sort快排不需要优先队列,咔~

不要问我怎么这么无脑,数据范围太大了,想不出好的方法

420ms很危险啊

TYVJ P1036 统计数字 Label:坑!!!(用queue+map做出来的水)的更多相关文章

  1. TYVJ P1037 阶乘统计2 Label&colon;坑

    描述 n的阶乘定义为n!=1*2*3*……*n 如3!=6 n!通常最后会有很多0,如5!=120 最后有一个0,现在统计n!去除末尾的0后,最后k位是多少  输入格式  第一行包括两个数n,k  输 ...

  2. lintcode 中等题:digits counts 统计数字

    题目 统计数字 计算数字k在0到n中的出现的次数,k可能是0~9的一个值 样例 例如n=12,k=1,在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],我们发现 ...

  3. NOIP2007 统计数字

    1.统计数字 (count.pas/c/cpp) [问题描述] 某次科研调查时得到了 n 个自然数,每个数均不超过 1500000000(1.5*109).已知不相同的数 不超过 10000 个,现在 ...

  4. 每日一练之排序算法&lpar;P1097 统计数字&rpar;

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

  5. java算法:统计数字-将数字转换成字符串,然后使用字符串String&period;valueOf&lpar;&rpar;方法进行判断

    题目: 计算数字 k 在 0 到 n 中的出现的次数,k 可能是 0~9 的一个值. 样例 样例 1: 输入: k = 1, n = 1 输出: 1 解释: 在 [0, 1] 中,我们发现 1 出现了 ...

  6. 统计数字noip2007

    7909:统计数字 总时间限制:  1000ms 内存限制:  65536kB 描述 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109).已知不相同的数不超过1000 ...

  7. 洛谷 P1097 统计数字

    P1097 统计数字 题目描述 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9).已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自 ...

  8. Java练习 SDUT-1704&lowbar;统计数字问题

    统计数字问题 Time Limit: 1000 ms Memory Limit: 32768 KiB Problem Description 一本书的页码从自然数1 开始顺序编码直到自然数n.书的页码 ...

  9. uva 1594 Ducci Sequence &lt&semi;queue&comma;map&gt&semi;

    Ducci Sequence Description   A Ducci sequence is a sequence of n-tuples of integers. Given an n-tupl ...

随机推荐

  1. 最近火到不行的微信小程序的常识

    满网都是微信小程序,技术dog们不关注都不行了.先别忙着去学怎么开发小程序,先纠正一下你对微信小程序的三观吧~~~~ 小程序目前被炒得沸沸扬扬,无数媒体和企业借机获取阅读流量. 这再次证明一点,微信想 ...

  2. Makefile简介

    1.源程序的编译在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器. 下面我们以一个实例来说明如何使用gcc编译器.假设我们有下面一个非常简单的源程序(hello.c):in ...

  3. linux下安装busybox

    1.获取busybox源码并解压,这里使用天嵌提供的“busybox-1.16.0.tar.bz2” #tar xvf busybox-.tar.bz2 -C / 解压的目的地址实际上是:/opt/E ...

  4. Spring系列之手写注解与配置文件的解析

    目录 Spring系列之IOC的原理及手动实现 Spring系列之DI的原理及手动实现 Spring系列之AOP的原理及手动实现 引入 在前面我们已经完成了IOC,DI,AOP的实现,基本的功能都已经 ...

  5. &period;NET MVC 学习笔记(一)— 新建MVC工程

    一..NET MVC 学习笔记(一)—— 新建MVC工程 接触MVC有段时间了,一直想找机会整理一下,可是限于文笔太差,所以一直迟迟羞于下手,想到最近做过的MVC项目也有一些了,花点时间整理一下方便以 ...

  6. Django - 将URL映射到视图

    URLconf 就像是 Django 所支撑网站的目录.它的本质是 URL 模式以及要为该 URL 模式调用的视图函数之间的映射表.你就是以这种方式告诉 Django,对于这个 URL 调用这段代码, ...

  7. marven与Eclipse集成配置

    maven作为一个项目构建工具,在开发的过程中很受欢迎,可以帮助管理项目中的bao依赖问题,另外它的很多功能都极大的减少了开发的难度,下面来介绍maven的安装及与eclipse的集成. maven的 ...

  8. 利用python的KMeans和PCA包实现聚类算法

    题目: 通过给出的驾驶员行为数据(trip.csv),对驾驶员不同时段的驾驶类型进行聚类,聚成普通驾驶类型,激进类型和超冷静型3类 . 利用Python的scikit-learn包中的Kmeans算法 ...

  9. ECNU 3260 - 袋鼠妈妈找孩子

    题目链接:http://acm.ecnu.edu.cn/problem/3260/ Time limit per test: 1.5 seconds Time limit all tests: 10. ...

  10. sleep&lpar;&rpar;,wait&lpar;&rpar;,yield&lpar;&rpar;和join&lpar;&rpar;方法的区别

    sleep() sleep()方法需要指定等待的时间,它可以让当前正在执行的线程在指定的时间内暂停执行,进入阻塞状态,该方法既可以让其他同优先级或者高优先级 的线程得到执行的机会,也可以让低优先级的线 ...