2023年分割槽聯賽普級組第二題 尋寶

2021-07-11 01:59:02 字數 1472 閱讀 1916

解題思路:

先讀入資料,用三個陣列分別儲存每間房牌子上的數字、每間房可不可以通往上層和每層樓有多少個可以通往上層的房,然後用迴圈模擬,先加上該房間裡牌子上的數,然後用

repeat

模擬在該層樓轉圈。最後輸出

ans mod 20123

的值即可。

程式:const

maxn=10000;

maxm=100;

vara:array[1..maxn,0..maxm]of longint;

f:array[1..maxn,0..maxm]of boolean;

d:array[1..maxn] of longint;

n,m,start:longint;

ans:int64;

procedure init;

vari,j,x:longint;

begin

//assign(input,'treasure,in');reset(input);

// assign(output,'treasure.out');rewrite(output);

readln(n,m);

fillchar(a,sizeof(a),0);

fillchar(f,sizeof(f),false);

for i:=1 to n do

for j:=1 to m do

begin

readln(x,a[i,j-1]);

if x=1 then begin f[i,j-1]:=true; inc(d[i]); end;

end;

readln(start);

//close(input);

end;

procedure main;

vari,j,nown,nowm,t,x:longint;

begin

nown:=1;

nowm:=start;

t:=0;

for i:=1 to n do

begin

ans:=ans+a[nown,nowm];

x:=(a[nown,nowm]-1) mod d[i]+1;

repeat

if (f[nown,nowm]=false) then inc(nowm);

if f[nown,nowm] then begin inc(t); if t=x then break; inc(nowm); end;

if nowm=m then nowm:=0;

until t=x;

t:=0;

inc(nown);

end;

ans:=ans mod 20123;

writeln(ans);

//close(output);

end;

begin

init;

main;

end.

版權屬於: chris

2023年分割槽聯賽普級組第四題

解題思路 先讀入資料,然後用二維數組建乙個圖,用 dijkstra 演算法,求最短路,如果有答案就輸出,不然就輸出 1。程式 const maxn 100 var a,b array 1.maxn,1.maxn of longint v array 1.maxn of boolean d,f,pre...

2023年分割槽聯賽普級組第一題

解題思路 首先用篩數法把 50000 以內的質數篩出來,然後用迴圈求出它最小的質數因數,再用讀入的 n除以這個數即是答案。程式 const maxn 50000 varf array 1.maxn of boolean n,i,j longint begin readln n fillchar f,...

2023年分割槽聯賽普級組之二 校門外

description 某校大門外長度為l的馬路上有一排樹,每兩棵相鄰的樹之間的間隔都是1公尺。我們可以把馬路看成乙個數軸,馬路的一端在數軸0的位置,另一端在l的位置 數軸上的每個整數點,即0,1,2,l,都種有一棵樹。由於馬路上有一些區域要用來建地鐵。這些區域用它們在數軸上的起始點和終止點表示。已...