乙個長度為 n 的區間,每個位置上有顏色 ci 以及代價 vi,現在問有多少個區間 [l,r] 滿足 cl = cr 且∃l
≤i≤r
,使得v
i≤p 。
我們只考慮每乙個點作為左端點時對答案的貢獻,我們令ne
xti 表示在i左邊,離i最近,且vn
exti
≤p的那個端點,(可以為i本身)那麼i這個端點對答案的貢獻就是區間[1,ne
xti ]顏色為c[i]的個數,用字首和搞一下就行。
const
maxn=200000;
var sum:array[0..maxn,0.
.55] of longint;
a,next,c:array[0..maxn] of longint;
bz:array[0..maxn] of boolean;
i,j,k,n,m,p:longint;
ans:int64;
begin
readln(n,k,p);
readln(c[1],a[1]);
sum[1,c[1]]:=1;
if a[1]<=p then
bz[1]:=true;
for i:=2
to n do
begin
readln(c[i],a[i]);
for j:=0
to k-1
do sum[i,j]:=sum[i-1,j];
inc(sum[i,c[i]]);
if a[i]<=p then
bz[i]:=true;
end;
for i:=1
to n do
if bz[i] then
break;
k:=i;
next[i]:=i;
for j:=k to n do
begin
if bz[j] then
begin
next[j]:=j;
i:=j;
endelse
next[j]:=i;
end;
for i:=k to n do
begin
if next[i]=i then
dec(ans);
ans:=ans+sum[next[i],c[i]]
end;
writeln(ans);
end.
NOIP 2011 day1 選擇客棧
題目大意 麗江河邊有 n 家很有特色的客棧,客棧按照其位置順序從1 到n 編號。每家客棧都按照 某一種色調進行裝飾 總共k 種,用整數0 k 1 表示 且每家客棧都設有一家咖啡店,每 家咖啡店均有各自的最低消費。兩位遊客一起去麗江旅遊,他們喜歡相同的色調,又想嘗試兩個不同的客棧,因此決定 分別住在色...
口胡 NOIP2012DAY1 借教室
題目描述 在大學期間,經常需要租借教室。大到院系舉辦活動,小到學習小組自習討論,都需要向學校申請借教室。教室的大小功能不同,借教室人的身份不同,借教室的手續也不一樣。面對海量租借教室的資訊,我們自然希望程式設計解決這個問題。我們需要處理接下來n天的借教室資訊,其中第i天學校有ri個教室可供租借。共有...
NOIP2011 提高組Day 1題解
總結 第一天的三道題除了第三題 長度有點超過我的接受範圍之外,一二題難度還是比較適中滴,只可惜第二題我打的暴力忘了小小的優化一下,結果沒得全分,有點難過了。這道題的思路就是輸入過後倒著尋找符合條件的地毯,因為越後放的地毯在越上面 這道題我們先列舉第二個客棧的位置,然後去倒推第乙個客棧的位置。當時做這...