CF競賽題目講解_CF961E(樹狀數(shù)組)
2022-07-27 12:30 作者:Clayton_Zhou | 我要投稿
//https://codeforces.com/contest/961/problem/E
題意:給出一個序列a[i],下標1-N,求滿足
(1) x < y?
(2) a[x] >= y?
(3) a[y] >= x的(x,y)數(shù)對有多少個。
?因為 a[y], 必須有 y<=N
題解:
先用vector儲存滿足條件(1)和(3)的y,再用樹狀數(shù)組統(tǒng)計滿足條件的(x,y)數(shù)對個數(shù)。
vector[min(i - 1, a[i])].push_back(i);
?即滿足條件(1)(3)的最大x 為min(y - 1, a[y])? 等價于 x<y,且 x<= a[y]
對于滿足條件(1)和(3)的y,查詢x個數(shù), x<=i, a[x] >= y 即條件(2)
? ? ? ? ? ? ans += sum(n) - sum(y- 1);
標簽: