普組模擬賽 戰馬列隊

2021-08-05 21:46:28 字數 1315 閱讀 4357

【普組模擬賽】戰馬列隊 

題目:

馬年到了,也到了檢閱戰馬的時候。戰馬分為白色和棕色兩種,一字排開,指揮官希望他的戰馬佇列盡可能整齊好看,將相同顏色的戰馬放在一起。

水題...

我們從前往後做一次字首和(w和b分開做)

從後往前也做一次

然後列舉每個點

如果是b,那麼當前點的答案就是前面的b的個數+後面的w的個數

如果小於答案,就更新

最後特判一下如果把所有的w換成b或者把所有的b換成w的步數比答案更小就更新

比賽時想複雜了,打了個複雜的dp

費了碼量和時間不說,還只有30分

氣死我也

標程(請勿抄襲,後果很嚴重):

var     st:ansistring; 

n,i,j,k,l,s,x:longint;

f1,f2:array[0..1001,1..2]of longint;

g:array[0..1001,0..1]of longint;

begin

assign(input,'queue.in');

assign(output,'queue.out');

reset(input);

rewrite(output);

readln(n);

readln(st);

for i:=n downto1do

begin

f1[i]:=f1[i+1];

case st[i] of

'w':inc(f1[i,1]);

'b':inc(f1[i,2]);

end;

end;

for i:=1

to n do

begin

f2[i]:=f2[i-1];

case st[i] of

'w':inc(f2[i,1]);

'b':inc(f2[i,2]);

end;

end;

s:=maxlongint;

for i:=1

to n do

case st[i] of

'b':if(s>f2[i,2]+f1[i,1]-1) then s:=f2[i,2]+f1[i,1]-1;

end;

if s>f1[1,2] then s:=f1[1,2];

if s>f1[1,1] then s:=f1[1,1];

writeln(s);

close(input);

close(output);

end.

普組模擬賽 馬農

普組模擬賽 馬農 題目 在 完戰馬檢閱之後,來自大草原的兩兄弟決心成為超級 馬農 專門飼養戰馬。兄弟兩回到草原,將可以養馬的區域,分為 n n 的單位面積的正方形,並實地進行考察,歸納出了每個單位面積可以養馬所獲得的收益。接下來就要開始規劃他們各自的馬場了。首先,兩人的馬場都必須是矩形區域。同時,為...

普組模擬賽 馬語翻譯

普組模擬賽 馬語翻譯 題目 隨著馬場的繁榮,出現了越來越多的新馬種。種族之間的溝通不暢嚴重影響了馬場的和諧。這時,科學家發明了馬語翻譯機械人,正好可以解決這一難題。機械人有 m 種,每種機械人能完成 k 個馬種之間的語言翻譯。問,利用這些機械人,能否實現 1 種群和 n 種群的馬語翻譯。若可以,找到...

普及組模擬賽 家族

題目描述 在乙個與世隔絕的島嶼上,有乙個有趣的現象 同乙個家族的人家總是相鄰的 這裡的相鄰是指東南西北四個方向 不同的家族之間總會有河流或是山丘隔絕,但同乙個家族的人不一定有相同姓氏。現在給你島上的地圖,求出島上有多少個不同的家族。島上的地圖有n 行,每行有若干列,每個格仔中要麼是 空格表示大海,要...