2019CCPC哈爾濱站 E題 O n

2021-09-28 16:04:56 字數 1363 閱讀 9662

在此貼另外乙個簡單題:吃糖果

如果ac上面乙個題目之後,發現兩個吃的方法其實一模一樣,但是又來了乙個問題,因為這個題目資料很大,卡 o(nlogn) ,則我們如何 o(n) 求出現次數最多的數。

在此貼另外乙個簡單題:#2456. mode

過了上面乙個題目你會發現,這個是求出現次數》=(n+1)/2的數,但是如果我們沒有這樣乙個數怎麼辦?仔細分析,如果不過半的話,則答案為sum,這個最大值沒意義,則我們只需要再掃一遍,判斷這個數出現了多少次。

#

include

#include

#include

#include

#include

#define

lllong

long

using namespace std;

const

int n=

1e6+5;

vector<

int>e[n]

;ll v[n]

;//代表第i段序列被使用次數

int n,op[n][3

];inline

void

read

(int

&x)inline

void

red()}

else}}

inline

void

slove1()

}inline

void

slove2()

all+=v[i];}

tol=0;

//統計這個數出現了多少次

for(

int i=

1;i<=n;i++)if

(op[i][0

]==1&& v[i]!=0

)for

(auto u:e[i])if

(u==x)

tol+=v[i];if

(tol>all-tol)

printf

("%lld\n"

,(all-tol)*2

);else

printf

("%lld\n"

,all);}

intmain()

return0;

}/**21

1 5 3 3 2 1 3

31 3 3 3 2

1 4 2 2 3 3

2 1 2

*/

2019ccpc哈爾濱補題

因為每個字串只能取乙個,剛開始是覺得全部列舉也不會超,後來想想列舉也要用深搜,所以就先記錄擁有各個字元的串,然後深搜 include using namespace std const int maxn 2e6 10 int t char s maxn vector int v 10 bool vi...

2019CCPC秦皇島站後記

前 時隔一年又來了秦皇島,這次吸取了上一次訂賓館的教訓,換了一家網上看起來挺好看的賓館,然後剛進門我就傻眼了。day1.早上三點半起來趕上海飛秦皇島的飛機,一上飛機我就睡著了,醒過來的時候發現昨晚通宵的jls已經開啟了電腦,果然真正的神仙都是不需要睡覺的 熱身賽比較快樂,簽完到之後發現d是列舉答案,...

2019CCPC哈爾濱A題 差分約束系統 二分

題目大意 有n 3e3個格仔,你可以任意給每個格仔染色,但是要滿足m 3e3限制條件,限制條件有兩種型別 1.區間 l,r 中被染色的格仔數量不少於k。2.區間 l,r 外被染色的格仔數量不少於k。在滿足所有限制條件下求染色格仔數量的最小值。題解 算作是差分約束 二分的板子題,比賽時還不知道差分約束...