普組模擬賽 馬農

2021-08-05 21:47:30 字數 2489 閱讀 7850

【普組模擬賽】馬農

題目:

在**完戰馬檢閱之後,來自大草原的兩兄弟決心成為超級「馬農」,專門飼養戰馬。

兄弟兩回到草原,將可以養馬的區域,分為 n*n 的單位面積的正方形, 並實地進行考察,歸納出了每個單位面積可以養馬所獲得的收益。接下來就要開始規劃他們各自的馬場了。

首先,兩人的馬場都必須是矩形區域。同時,為了方便兩人互相照應,也為了防止馬匹互相走散,規定兩個馬場的矩形區域相鄰,且只有乙個交點。最後,互不認輸的兩人希望兩個馬場的收益相當,這樣才不會影響他們兄弟的感情。

現在,兄弟兩找到你這位設計師,希望你給他們設計馬場,問共有多少種設計方案。

比賽時絞盡腦汁都想不出來

其實正解就是暴力加所謂的「版本」優化

首先列舉交點

然後列舉其中一塊,把答案數加到乙個標記陣列裡

然後列舉另一塊,加答案

單純的這樣去做會超時,因為陣列太大,每次都初始化會爆時間

我們再加乙個p[j]表示當前j這個位置的版本

首先我們定義乙個v表示當前版本

每次列舉開始時v+1

然後在標記時和累加答案時看版本號對不對

對就照常做

不對就變版本號並且清零

這樣就ac了

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

var     map,sum:array[0..51,0..51]of longint;

bz:array[-7500000..7500000]of longint;

b:array[-7500000..7500000]of integer;

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

begin

assign(input,'farmer.in');

assign(output,'farmer.out');

reset(input);

rewrite(output);

readln(n);

for i:=1

to n do

for j:=1

to n do

begin

read(map[i,j]);

sum[i,j]:=sum[i-1,j]+sum[i,j-1]-sum[i-1,j-1]+map[i,j];

end;

x:=0;

now:=0;

for i:=1

to n do

for j:=1

to n do

begin

inc(now);

for k:=1

to i do

for l:=1

to j do

begin

if b[sum[i,j]-sum[k-1,j]-sum[i,l-1]+sum[k-1,l-1]]<>now then

begin

b[sum[i,j]-sum[k-1,j]-sum[i,l-1]+sum[k-1,l-1]]:=now;

bz[sum[i,j]-sum[k-1,j]-sum[i,l-1]+sum[k-1,l-1]]:=0;

end;

inc(bz[sum[i,j]-sum[k-1,j]-sum[i,l-1]+sum[k-1,l-1]]);

end;

for k:=i+1

to n do

for l:=j+1

to n do

if b[sum[k,l]-sum[i,l]-sum[k,j]+sum[i,j]]=now then

ans:=ans+bz[sum[k,l]-sum[i,l]-sum[k,j]+sum[i,j]];

inc(now);

for k:=1

to i do

for l:=j to n do

begin

if b[sum[i,l]-sum[k-1,l]-sum[i,j-1]+sum[k-1,j-1]]<>now then

begin

b[sum[i,l]-sum[k-1,l]-sum[i,j-1]+sum[k-1,j-1]]:=now;

bz[sum[i,l]-sum[k-1,l]-sum[i,j-1]+sum[k-1,j-1]]:=0;

end;

inc(bz[sum[i,l]-sum[k-1,l]-sum[i,j-1]+sum[k-1,j-1]]);

end;

for k:=i+1

to n do

for l:=1

to j-1

doif b[sum[k,j-1]-sum[i,j-1]-sum[k,l-1]+sum[i,l-1]]=now then

ans:=ans+bz[sum[k,j-1]-sum[i,j-1]-sum[k,l-1]+sum[i,l-1]];

end;

writeln(ans);

close(input);

close(output);

end.

普組模擬賽 馬語翻譯

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

jzoj1965 遞推 普組模擬賽 馬球比賽

題目描述 在解決了馬語翻譯問題後,馬匹數量越來越多,不少鄉鎮都有了數量可觀的馬匹,開始出現馬球比賽。鄉鎮之間決定進行馬球聯賽。聯賽的賽制,主要是比賽雙方的馬匹數量,成了乙個急需解決的問題。首先,所有鄉鎮都要求,本鄉鎮所有的馬匹都必須參賽,或者都不參賽 若組隊的馬匹數量不是該鎮馬匹數量的約數,將無法參...

(紀中)1965 普組模擬賽 馬球比賽 數學

file io input polo.in output polo.out 時間限制 1000 ms 空間限制 128000 kb 具體限制 goto problemset 題目描述 在解決了馬語翻譯問題後,馬匹數量越來越多,不少鄉鎮都有了數量可觀的馬匹,開始出現馬球比賽。鄉鎮之間決定進行馬球聯賽。...