SSL2511沼澤鱷魚

2021-07-11 05:51:26 字數 2281 閱讀 4877

潘塔納爾沼澤地號稱世界上最大的一塊濕地,它地位於巴西中部馬托格羅索州的南部地區。每當雨季來臨,這裡碧波蕩漾、生機盎然,引來不少遊客。

為了讓遊玩更有情趣,人們在池塘的**建設了幾座石墩和石橋,每座石橋連線著兩座石墩,且每兩座石墩之間至多只有一座石橋。這個景點造好之後一直沒敢對外開放,原因是池塘裡有不少危險的食人魚。

豆豆先生酷愛冒險,他一聽說這個訊息,立馬趕到了池塘,想做第乙個在橋上旅遊的人。雖說豆豆愛冒險,但也不敢拿自己的性命開玩笑,於是他開始了仔細的實地勘察,並得到了一些驚人的結論:食人魚的行進路線有週期性,這個週期只可能是2,3或者4個單位時間。每個單位時間裡,食人魚可以從乙個石墩游到另乙個石墩。每到乙個石墩,如果上面有人它就會實施攻擊,否則繼續它的週期運動。如果沒有到石墩,它是不會攻擊人的。

借助先進的儀器,豆豆很快就摸清了所有食人魚的運動規律,他要開始設計自己的行動路線了。每個單位時間裡,他只可以沿著石橋從乙個石墩走到另乙個石墩,而不可以停在某座石墩上不動,因為站著不動還會有其它危險。如果豆豆和某條食人魚在同一時刻到達了某座石墩,就會遭到食人魚的襲擊,他當然不希望發生這樣的事情。

現在豆豆已經選好了兩座石墩start和end,他想從start出發,經過k個單位時間後恰好站在石墩end上。假設石墩可以重複經過(包括start和end),他想請你幫忙算算,這樣的路線共有多少種(當然不能遭到食人魚的攻擊)。

如果沒有食人魚,我們直接可以建立矩陣然後相乘得出結果。但是現在出現了食人魚。所以我們要考慮食人魚的情況。食人魚在2,3,4週期運動,所以所有食人魚的運動週期為2,3,4的最小公倍數12.然後建立十二個週期的矩陣就可以了

程式: const

p=10000;

type

arr=array [1..50,1..50] of longint;

varn,m,l,o,t,q,g,x,y,i,j,k,z:longint;

a,c,d:arr;

f:array [1..12] of arr;

w:array [1..4] of longint;

procedure mul(a,b:arr);

vari,j,k:longint;

begin

fillchar(c,sizeof(c),0);

for i:=1 to n do

for j:=1 to n do

for k:=1 to n do

c[i,j]:=(c[i,j]+a[i,k]*b[k,j]) mod p;

end;

procedure work(x:longint);

begin

if x=0 then exit;

work(x div 2);

mul(c,c);

if x mod 2=1 then mul(c,d);

end;

procedure print;

vari,j:longint;

begin

for i:=1 to n do

for j:=1 to n do

if jthen write(c[i,j],' ')

else writeln(c[i,j]);

end;

begin

readln(n,m,l,o,t);

for i:=1 to m do

begin

readln(x,y);

a[x+1,y+1]:=1;

a[y+1,x+1]:=1;

end;

readln(g);

for i:=1 to 12 do

f[i]:=a;

for i:=1 to g do

begin

read(q);

for j:=1 to q do

read(w[j]);

for j:=1 to 12 do

begin

z:=j mod q+1;

for k:=1 to n do

f[j,k,w[z]+1]:=0;

end;

end;

for i:=1 to n do

c[i,i]:=1;

for i:=1 to 12 do

mul(c,f[i]);

d:=c;

fillchar(c,sizeof(c),0);

for i:=1 to n do

c[i,i]:=1;

work(t div 12);

for i:=1 to t mod 12 do

mul(c,f[i]);

writeln(c[l+1,o+1]);

end.

ZJOI2004 沼澤鱷魚

給定乙個無向圖,以及起點s和終點t。每單位時間可以從乙個點走向聯通的另乙個點,問從起點s出發,經過k單位時間到達終點t的方案總數。最多50個點,k小於等於10 9。另 某一週期 週期時間為2,3或4 內一些點不能走到。到達某一點的方案總數,需要想到由加法原理進行遞推。記f u,k 為k秒後到達u點的...

沼澤鱷魚 討論題)

潘塔納爾沼澤地號稱世界上最大的一塊濕地,它地位於巴西中部馬托格羅索州的南部地區。每當雨季來臨,這裡碧波蕩漾 生機盎然,引來不少遊客。為了讓遊玩更有情趣,人們在池塘的 建設了幾座石墩和石橋,每座石橋連線著兩座石墩,且每兩座石墩之間至多只有一座石橋。這個景點造好之後一直沒敢對外開放,原因是池塘裡有不少危...

BZOJ 1898 Swamp 沼澤鱷魚

思路 因為是中文題,題意就不過多描述了。食人魚的活動週期分別是2 3或4,這樣可以考慮所有的食人魚的活動情況一定是最小以12為週期的,這樣我們就構造12個矩陣,a i m x y 每個矩陣表示在第 i 時刻,從第 x 個石墩到第 y 個石墩能不能走,這樣將這十二個矩陣相乘,得到第十三個矩陣a 0 對...