码迷,mamicode.com
首页 > 其他好文 > 详细

Luogu1059 明明的随机数

时间:2019-07-22 09:18:11      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:bool   ++   变化   return   没有   返回   类型   ace   测试   

STL是个好东西!

看到这道题,我当然想到了堆;在STL里有个东西叫做优先队列priority_queue(其实set做这道题更合适),然后再开个桶看这个数是不是已经有了,有了就不放进来,没有就扔进来;完美;return 0;
下面放代码

#include<bits/stdc++.h>
#include<queue>  //加上这个头文件在码代码的时候方便很多
using namespace std;
bool b[2000];//就是个桶
int n;
priority_queue<int,vector<int>,greater<int> > data;
//int是类型,vector是容器,greater是小根堆
int main()
{
//    freopen("testdata.in","r",stdin);//测试用的无视就好了
    
    cin>>n;
    int x;
    for(int i=1;i<=n;i++)
    {
        cin>>x;
        if(!b[x])
        {
            data.push(x);
            b[x]=true; //输入过的数字下次不输入了
        }
    }
    cout<<data.size() <<endl;//返回元素个数
    int k=data.size() ;//这里必须记录一下,否则下面运算时.size()返回值变化就坏了
    for(int i=1;i<=k;i++)
    {
        cout<<data.top()<<  ;
        data.pop();//弹出最上边的元素
        
    }
    return 0;
}

就是这样!有什么问题希望大家能指出!ありがとうございます。

Luogu1059 明明的随机数

标签:bool   ++   变化   return   没有   返回   类型   ace   测试   

原文地址:https://www.cnblogs.com/Shiina-Rikka/p/11223647.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!