JLOI2011 不重複數字

2022-09-08 18:57:07 字數 776 閱讀 4180

原題鏈結

題解題目大意:

給出n個數,要求把其中重複的去掉,只保留第一次出現的數。

最後按順序輸出

n <= 50000

然這題是個雜湊的典型題目

hash,我對於它的理解就是乙個桶%乙個數,當然並不是如此,有很多更好的hash函式可以更好的減少衝突,例如非十進位制數等。

hash一般用來處理乙個元素是否在乙個集合內,大部分的時候二分查詢+快速排序可以代替這個功能(stl中也有專門用來去重的),但在有些題目的運用上,則必須用到hash

#include#include

#include

#include

using

namespace

std;

typedef

long

long

ll;const

int n=5e4+5

;ll f[n];

intt,n,z;

inline ll read()

//讀入優化

while(isdigit(ch)) x=(x<<3)+(x<<1)+(ch^48),ch=getchar();

return w?-x:x;

}int find(ll x)

if (f[y]==0) return y;//

判斷x在不在hash表

else

return -1;}

intmain()

}puts(

"");

}}

BZOJ 2761 JLOI 2011 不重複數字

這題看起來就像是什麼都能做,扔set扔map 或者unordered 自己寫平衡樹,甚至sort一遍都能a畢竟可以離線 但是當作hash的練手題,經由zyx的指導後a了,調了幾次引數貌似像我這樣寫法 613最好?by richard include include include include i...

bzoj2761 JLOI2011 不重複數字

bzoj2761 jloi2011 不重複數字 題意 給出n個數,要求把其中重複的去掉,只保留第一次出現的數。n 50000 題解 一道令管理員都後悔加入的水題,按大小排序後unique,再按讀入順序排序即可。1 include 2 include 3 include 4 define inc i,...

洛谷 P4305 JLOI2011 不重複數字

題解原發於我的blog 兩個月不寫題解了,今天來水一波 這題的目標就是去重,我們都知道c 有stl 先把整個序列按值排序一遍,在按值去重,再按原來的順序排回去,就這麼簡單 注意使用 sort 時可能會打亂前後順序,所以也要在排序時加入另外加入與位置有關的條件 複雜度 o nlogn include ...