Hihocoder 數列問題

2021-09-26 06:53:39 字數 934 閱讀 4436

給定乙個長度為n數列a = [a1,

a2,.

..an

a_1, a_2, ... a_n

a1​,a2

​,..

.an​

],由於某種原因,小ho對這個數列有些不滿意。

他希望每個在數列**現的數值,其出現的次數都是唯一的。

假設a = [1, 1, 2, 2],1和2都出現了2次,小ho就會不滿意。

於是小ho決定從a中刪除一些數,使得每個數值出現次數都是唯一的。

小ho想知道他最少要刪除幾個數?

例如對於a = [1, 1, 2, 2],最少刪除乙個數變成[1, 2, 2]或[1, 1, 2]。

第一行包含乙個整數n。

第二行包含n個整數 $a_1, a_2, … a_n $ 。

1 <= n <= 100000 1 <= a

ia_i

ai​ <= 1000000

乙個整數代表答案

41 2 2 1

使用雜湊表處理問題,當有多個數的出現次數的數值相同時,刪除其中乙個數字並判斷該處的雜湊值是否為空,如為空,則儲存並記錄與修改雜湊值,否則繼續刪除直到全部刪除為止

#includeusing namespace std;

#define n 1000010

mapm;

int t,a;

int table[n];

int main()

for(map::iterator it=m.begin();it!=m.end();it++)

int ans=0;

for(map::iterator it=m.begin();it!=m.end();it++)

table[st]=1;

}} }

cout

}

等差子數列 HihoCoder 1710

給定n個整數a1,a2,an,小hi會詢問你m個問題。對於每個問題小hi給出兩個整數l和r l r 請你找出 al,al 1,al 2,ar 中最長的等差連續子數列,並輸出其長度。例如 2,3,5,7,9 中最長的等差連續子數列是 3,5,7,9 長度為4。input 第一行包含兩個整數n和m。第二...

hihoCoder 骨牌覆蓋問題 一

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述骨牌,一種古老的玩具。今天我們要研究的是骨牌的覆蓋問題 我們有乙個2xn的長條形棋盤,然後用1x2的骨牌去覆蓋整個棋盤。對於這個棋盤,一共有多少種不同的覆蓋方法呢?舉個例子,對於長度為1到3的棋盤,我們有下面幾種覆蓋方式 ...

hihoCoder 骨牌覆蓋問題 一

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述骨牌,一種古老的玩具。今天我們要研究的是骨牌的覆蓋問題 我們有乙個2xn的長條形棋盤,然後用1x2的骨牌去覆蓋整個棋盤。對於這個棋盤,一共有多少種不同的覆蓋方法呢?舉個例子,對於長度為1到3的棋盤,我們有下面幾種覆蓋方式 ...