CCPC 2017哈爾濱站 重現賽 B(二分)

2021-08-10 16:30:07 字數 704 閱讀 8630

題意:給你乙個序列,讓你將所有子串中第k大的數拿出來,排成一排,求生成序列第m大的數是多少?

題解:比賽時想的是單調棧的方法,哇,搞了快兩個小時,思路一開始就是錯的。。。。真的是。。。

正解是二分答案,很容易想到對於第m大的數的取值是存在單調性的。想到二分答案問題基本上就解決了,

剩下的就是判斷答案的合法性,我們可以每次列舉所有子串的起點,然後定義指標p往後遍歷直到以p結尾的

子區間中大於等於當前答案的數有k個時,呢麼以i為起點的合法區間就有n-p+1個,這個很容易明白,因為

p後邊的數假如比當前列舉的答案小,呢麼一定不會影響答案(別忘了是求第k大),假如比當前列舉的答案大的話,呢一定是生成序列中排在

當前列舉的答案之前的,所以也要加上。。

#includeint a[100005],n,k;

long long m;

long long check(int x)

res+=n-p+1;

if(a[i]>=x)

sum--;

} return res;

}int main(void)

printf("%d\n",ans);

} return 0;

}

CCPC 2017哈爾濱站 重現賽 D(瞎搞)

題意 給你一棵樹,然後樹上有m個壞人,每個壞人位於某乙個結點上,壞人之間能夠相互聯絡的條件是當且僅當兩個壞人的距離大於1,每一小時壞人會相互聯絡一次,他們會隨機的選擇乙個能聯絡的同伴方向移動,然後問你壞人之間不能相互聯絡的時間期望是多少。題解 比賽時翻譯完這道題我是懵逼的,但是感覺真的很奇怪,就覺得...

CCPC 2017秦皇島站 重現賽 H(二分匹配)

題意 給你乙個序列,讓你找出不超過k對的數對 i,j 使得a i b j 是乙個質數,並且i j,且讓這k對數對組成的 序列的元素盡可能的多,問你最終生成序列的元素個數。比如 3 4 3 可以組成2對 1,2 和 2,3 生成的序列就是 3 4 3,呢答案就是3 題解 對於乙個質數,本題考慮一定是原...

2017 CCPC 哈爾濱站 銀牌題彙總

a palindrome hdu 6230 題目大意 乙個字串找出有多少 乙個半回文串 乙個半回文串的定義為,兩個回文串恰好a的右邊界是b的回文中心,而b的左邊界恰好是a的回文中心。題目思路 有兩種做法,主席樹和樹狀陣列,主席樹慢些但是題目並不想卡主席樹。分析題目可以知道,只要求出有多少對回文串相互...