潘塔納爾沼澤地號稱世界上最大的一塊濕地,它地位於巴西中部馬托格羅索州的南部地區。每當雨季來臨,這裡碧波蕩漾、生機盎然,引來不少遊客。
為了讓遊玩更有情趣,人們在池塘的**建設了幾座石墩和石橋,每座石橋連線著兩座石墩,且每兩座石墩之間至多只有一座石橋。這個景點造好之後一直沒敢對外開放,原因是池塘裡有不少危險的食人魚。
豆豆先生酷愛冒險,他一聽說這個訊息,立馬趕到了池塘,想做第乙個在橋上旅遊的人。雖說豆豆愛冒險,但也不敢拿自己的性命開玩笑,於是他開始了仔細的實地勘察,並得到了一些驚人的結論:食人魚的行進路線有週期性,這個週期只可能是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 對...