傳送門
編號好評
先把所有數記個字首和,然後對於某乙個右端點\(r(r\geq l)\),能計入答案的\(l\)的範圍為\([\max(r-r,0),r-l]\)
可以開乙個大根堆,先對於所有右端點\(r\),加入\(pre_r-\min(pre_)\),然後每次取出堆頂加入答案,彈掉堆頂,同時如果這是堆頂對應右端點減第\(k\)小的左端點的值,就把右端點減第\(k+1\)小的左端點的值加入堆中,這裡我們可以使用主席樹查詢該區間內的任意第\(k\)小值
#include#define ll long long
#define il inline
#define re register
#define db double
#define eps (1e-7)
using namespace std;
const int n=500000+10;
const ll inf=1ll<<45;
il ll rd()
while(ch>='0'&&ch<='9')
return x*w;
}#define mid ((l+r)>>1)
int s[n*20],ch[n*20][2],rt[n],tt;
int n,kk,l,r,a[n],b[n],pp[n][3];
il void inst(int p)
il void po()
}int q;
int main()
printf("%lld\n",ans);
return 0;
}
luoguP2048 NOI2010 超級鋼琴
解析 先考慮暴力 將每個區間求出來,放進乙個堆裡,取出前k個就是答案。期望得分 20,原因 tle code 對,我真寫了 includeusing namespace std const int maxn 5 1e5 10 int n,k,l,r,ans int sum maxn priority...
P2048 NOI2010 超級鋼琴
小z是乙個小有名氣的鋼琴家,最近c博士送給了小z一架超級鋼琴,小z希望能夠用這架鋼琴創作出世界上最美妙的 這架超級鋼琴可以彈奏出n個音符,編號為1至n。第i個音符的美妙度為ai,其中ai可正可負。乙個 超級和弦 由若干個編號連續的音符組成,包含的音符個數不少於l且不多於r。我們定義超級和弦的美妙度為...
P2048 NOI2010 超級鋼琴
和十二省聯考d1t2相似的思路 用堆維護最大值,取出乙個位置之後把這個位置的下乙個值插入堆 注意插入的數有負數,並且開long long include include include include define int long long using namespace std struct q...