电脑课来刷刷水题....这道题我居然WA 和 PE 了这么久.....不想活了..

这道题set , hash , sort ,平衡树 什么的都可以搞吧..

用set没有氧气优化好像会很慢的样子...但BZOJ好像有..

-------------------------------------------------------------------------------------------

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<set>
#include<vector>
#include<iostream>
#define rep( i , n ) for( int i = 0 ; i < n ; ++i )
#define clr( x , c ) memset( x , c , sizeof( x ) )
using namespace std;
const int maxn = 50000 + 5;
set< int > MAP;
vector< int > ans;
int main() {
    int t;
    cin >> t;
    while( t-- ) {
        int n;
        cin >> n;
        MAP.clear();
        ans.clear();
        while( n-- ) {
            int x;
            scanf( "%d" , &x );
            if( MAP.find( x ) == MAP.end() ) {
                MAP.insert( x );
                ans.push_back( x );
            }
        }
        int sz = ans.size();
        rep( i , sz ) {
   printf( "%d" , ans[ i ] );
   if( i != sz - 1 ) printf( " " );
}
printf( "\n" );
    }
    return 0;
}

-------------------------------------------------------------------------------------------

从没写过hash...自己YY了一个写一下...

mod的值取得太小或太大都不行...

-------------------------------------------------------------------------------------

#include<cstdio>
#include<cstring>
#include<vector>
#include<algorithm>
#include<iostream>
#define rep( i , n ) for( int i = 0 ; i < n ; ++i )
#define clr( x , c ) memset( x , c , sizeof( x  ) )
using namespace std; 
const int mod = 1000000;
vector< int > hash[ mod ];
vector< int > ans;
void init() {
rep( i , mod ) hash[ i ].clear();
ans.clear();
}
inline void insert( int X ) {
int x = X;
while( x < 0 ) x += mod;
hash[ x % mod ].push_back( X );
}
inline bool find( int X ) {
int x = X;
while( x < 0 ) x += mod;
x %= mod;
rep( i , hash[ x ].size() ) if( X == hash[ x ][ i ] ) return true;
return false;
}
int main() {
int t;
cin >> t;
while( t-- ) {
   init();
   int n;
   cin >> n;
   while( n-- ) {
   int x;
   scanf( "%d" , &x );
   if( ! find( x ) ) {
   insert( x );
   ans.push_back( x );
}
}
int sz = ans.size();
rep( i , sz ) {
printf( "%d" , ans[ i ] );
if( i != sz - 1 ) printf( " " );
}
printf( "\n" );
}
return 0;
}

-------------------------------------------------------------------------------------

2761: [JLOI2011]不重复数字

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 2237  Solved: 863
[Submit][Status][Discuss]

Description

给出N个数,要求把其中重复的去掉,只保留第一次出现的数。
例如,给出的数为1 2 18 3 3 19 2 3 6 5 4,其中2和3有重复,去除后的结果为1 2 18 3 19 6 5 4。

Input

输入第一行为正整数T,表示有T组数据。
接下来每组数据包括两行,第一行为正整数N,表示有N个数。第二行为要去重的N个正整数。

Output

对于每组数据,输出一行,为去重后剩下的数字,数字之间用一个空格隔开。

Sample Input

2
11
1 2 18 3 3 19 2 3 6 5 4
6
1 2 3 4 5 6

Sample Output

1 2 18 3 19 6 5 4
1 2 3 4 5 6

HINT

对于30%的数据,1 <= N <= 100,给出的数不大于100,均为非负整数;

对于50%的数据,1 <= N <= 10000,给出的数不大于10000,均为非负整数;

对于100%的数据,1 <= N <= 50000,给出的数在32位有符号整数范围内。

提示:

由于数据量很大,使用C++的同学请使用scanf和printf来进行输入输出操作,以免浪费不必要的时间。

Source

转载于:https://www.cnblogs.com/JSZX11556/p/4527177.html

BZOJ 2761: [JLOI2011]不重复数字( )相关推荐

  1. bzoj 2761: [JLOI2011]不重复数字【hash】

    map会T,双hash会冲突--于是非酋写了个三hash #include<iostream> #include<cstdio> #include<cstring> ...

  2. bzoj2761 [JLOI2011]不重复数字

    2761: [JLOI2011]不重复数字 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 3081  Solved: 1138 [Submit][S ...

  3. [JLOI2011]不重复数字

    题目描述 给出N个数,要求把其中重复的去掉,只保留第一次出现的数. 例如,给出的数为1 2 18 3 3 19 2 3 6 5 4,其中2和3有重复,去除后的结果为1 2 18 3 19 6 5 4. ...

  4. [BZOJ2761/Luogu4305][JLOI2011]不重复数字 题解

    题目链接: BZOJ2761 Luogu4305 大水题一个... 应该有很多种做法,\(Juruo\)随便说几个自己的解法吧. Plan A 最暴力的:用一颗平衡树记录前面出现过的数,判断当前数是不 ...

  5. linux找出重复数字,C语言笔试经典-查找多位数重复数字以及次数

    从键盘输入一个多位的整数 用程序判断 这个数里面有没有 重复的数字  有重复的数字就打印  哪个数字重复了  重复了几次 例如:输入:1122431 打印结果: 1重复 出现3次 2重复 出现2次, ...

  6. HYSBZ2761 不重复数字【序列处理】(BZOJ2761)

    2761: [JLOI2011]不重复数字 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 5396  Solved: 2039 [Submit][S ...

  7. 数组专题——找重复数字 利用下标

    找出任一重复数字 数组范围0-n-1 bool duplicate(int numbers[],int length,int *duplication){//传地址,通过参数返回重复数字//robus ...

  8. 题目:查找数组中的重复数字,要求空间复杂度为O(1)(基于Java实现)

    题目:查找数组中的重复数字,要求空间复杂度为O(1)(基于Java实现) 题目: 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字 ...

  9. lintcode :Remove Duplicates from Sorted Array II 删除排序数组中的重复数字 II

    题目: 删除排序数组中的重复数字 II 跟进"删除重复数字": 如果可以允许出现两次重复将如何处理? 样例 给出数组A =[1,1,1,2,2,3],你的函数应该返回长度5,此时A ...

  10. 无重复数字的随机数字数组

    这几天看MFC,头晕眼花,也觉得没有什么可以写的. 今天学习之余,看到一个面试题"1000个范围0-2000的数字,进行排序打印出来".就想着实现一下. 第一步先要建立1000个范 ...

最新文章

  1. 实操教程|PyTorch AutoGrad C++层实现
  2. SAP QM初阶之启用了Multiple Specification功能后检验批的不同之处?
  3. WCF错误:413 Request Entity Too Large
  4. golang select关键字用法
  5. [翻译] CSStickyHeaderFlowLayout
  6. [Java基础] Properties类的基本操作和介绍
  7. CodeForces - 1013B And 与运算暴力
  8. dataframe先分组再画图
  9. Windows Phone 7 使用Perst数据库的Demo——流水账
  10. 固高运动控制卡QT和VS(MFC)的配置
  11. linux系统中rpm啥意思,Linux系统中的RPM简说
  12. Win Server2003常见问题的解决然方案
  13. ckplayer只调用html,Ckplayer的安装及调用
  14. 第一周礼拜四 神藉着祂的众仆人行事(上)
  15. AutoCAD 2007官方.NET教程(一)(C#版)
  16. getsockopt( )函数详解
  17. 武冈二中2021高考成绩查询,快看!2019最新武冈一中、二中录取分数线出炉
  18. PCL入门系列一——PCL简介及PCL安装
  19. 三十学艺与 Linux Networking Cookbook
  20. 3ds模型--完善TGA纹理显示

热门文章

  1. 【POJ2406】Power Strings(hash/kmp)
  2. php 中echo命令详解,DOS中的ECHO命令详解
  3. python 3.0_python基础3.0
  4. 怎么看蛋白质编码序列_墨鱼的“墨汁”可以吃吗,它有什么营养?看完就明白,涨知识了...
  5. 极客大学架构师训练营 大数据可视化、机器学习、PageRank算法、KNN分类算法、贝叶斯分类算法、推荐引擎算法、感知机、神经网络 第26课 听课总结
  6. 易筋SpringBoot 2.1 | 第十五篇:SpringBoot连接池Druid
  7. android公交车代码,android实现查询公交车还有几站的功能
  8. linux怎么卸载软件 apt,linux安装和卸载软件:sudo apt-get install(remove)
  9. java timer.schedule如何控制执行次数_Java 面试——JIT详解
  10. 二叉搜索树的第K大结点