今天在別人的幫助下完成了這個程式,
首先我用o(kn)的演算法,但有2個點超了
後來用了o(n)的演算法過了。
programwu;02
var03
c,m,s,f,a:
array[0..200001]of
longint;
04ou:
array[0..50,0..200001]of
longint;
05oy:
array[0..50] of
longint;
06o,n,k,p,i,j,l,ans,maxa,maxb,tot:longint;
07begin
08ans:=0;09
readln(n,k,p);
10for i:=1
to n do
11readln(c[i],m[i]);
12for i:=1
to n do
begin
13inc(oy[c[i]]);
14ou[c[i],oy[c[i]]]:=i;
15if m[i]<=p then f[i]:=f[i-1]+1
16else f[i]:=f[i-1
];17
end;
18for j:=0
to k-1
do19
begin
20tot:=0;21
maxa:=0;22
maxb:=0;23
for o:=1
to oy[j] do
begin
24i:=ou[j,o];
25if tot<>0
then
begin
26if f[i]-f[tot-1]>0
then
begin maxa:=maxa+maxb;maxb:=1;end
27else
inc(maxb);
28tot:=i;
29end
30else
31begin
32maxb:=1;33
tot:=i;
34end;35
ans:=ans+maxa;
36end;37
end;
38writeln(ans);
39end.
其實就是乙個遞推,但我還需加強練習。
NOIP 2011 day1 選擇客棧
題目大意 麗江河邊有 n 家很有特色的客棧,客棧按照其位置順序從1 到n 編號。每家客棧都按照 某一種色調進行裝飾 總共k 種,用整數0 k 1 表示 且每家客棧都設有一家咖啡店,每 家咖啡店均有各自的最低消費。兩位遊客一起去麗江旅遊,他們喜歡相同的色調,又想嘗試兩個不同的客棧,因此決定 分別住在色...
口胡 NOIP2011DAY1 選擇客棧
乙個長度為 n 的區間,每個位置上有顏色 ci 以及代價 vi,現在問有多少個區間 l,r 滿足 cl cr 且 l i r 使得v i p 我們只考慮每乙個點作為左端點時對答案的貢獻,我們令ne xti 表示在i左邊,離i最近,且vn exti p的那個端點,可以為i本身 那麼i這個端點對答案的貢...
選擇客棧(noip2011 day1 t2)
題目描述 麗江河邊有 n 家很有特色的客棧,客棧按照其位置順序從 1 到 nn n 編號。每家客棧都按照某一種色調進行裝飾 總共 k 種,用整數 0 k 1 表示 且每家客棧都設有一家咖啡店,每家咖啡店均有各自的最低消費。兩位遊客一起去麗江旅遊,他們喜歡相同的色調,又想嘗試兩個不同的客棧,因此決定分...