乙個序列\(a_i\),每次詢問\((l,r,t)\),表示詢問\([l,r]\)內出現了大於\(\frac\)次的最大的數是什麼。
\(n\le 10^5\)
感覺這題之前cf見過,直接搬那題的做法。。。tle。。。
事實證明這題正解比cf那題高到不知道**去了。
維護權值線段樹,建主席樹,表示一段字首中每個樹各自的出現次數。線段樹上維護和。
查詢的時候,如果當前權值區間總的出現次數大於\(\frac\),則繼續走下去。否則退出。
由於每一層至多有\(t\)個可以走下去的區間,\(\lg n\)層,所以一次詢問時間複雜度\(o(t\lg n)\)
這題告訴我們不要認為自己做了原題就萬事大吉了。
using namespace std;
#include #include #include #define n 100005
int n,m;
int a[n],re[n];
int p[n];
bool cmpp(int x,int y)
int en,st,t;
int ans;
void query(node *r,node *l,int l,int r)
int mid=l+r>>1;
if (ans==-1) query(r->r,l->r,mid+1,r);
if (ans==-1) query(r->l,l->l,l,mid);
}int main();
int q;
scanf("%d%d",&n,&q);
for (int i=1;i<=n;++i)
scanf("%d",&a[i]);
inita();
// for (int i=1;i<=n;++i)
// printf("%d ",a[i]);
// printf("\n");
rt[0]=null;
for (int i=1;i<=n;++i)
while (q--)
return 0;
}
計蒜之道 2019 決賽 摸魚記
聽說決賽考機器學習,而且有7.5小時,就很慌。後來聽說之前那些人都是現場學的,就決定現場學習乙個吧。先看題,大概是個點選量 就是給你一大堆已經有的資料,包括時間 地點 興趣愛好等資料以及是否點選了,又給了一堆資料要你 點選率。去問了一下zjt,他說了一堆東西,但是我都聽不懂。接著就自己上網查了一下,...
2020計蒜之道初賽一 染色 (dp 線段樹)
題意 對乙個長度為n的條染色,只能黑或者白,對第i塊染色染成黑或白分別加分arr i 和brr i 給出m條線段,對這些線段同時染成某種顏色有額外的加分,求最大的加分數。解析 比賽時用著明顯錯誤的假演算法衝過了中等難度,感覺題目的資料有點過水,不能保證 完全正確 現在想來中等難度的o n m 2 的...
2020 計蒜之道 預賽 第一場
思路 模擬題 考慮全面即可 第一步 判斷先手和後手,兩棋子相差一定是 1,當相等時,黑子x先走。第二步 暴力判斷每個空白處,填充相應棋子,能不能湊齊五子連珠。橫,豎,撇,捺 說明 黑子先走,棋盤上只會出現黑子 白子的情況 當時只考慮黑子先走,一首涼涼送給自己 includechar map 26 2...