解題思路:
先讀入資料,用三個陣列分別儲存每間房牌子上的數字、每間房可不可以通往上層和每層樓有多少個可以通往上層的房,然後用迴圈模擬,先加上該房間裡牌子上的數,然後用
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,都種有一棵樹。由於馬路上有一些區域要用來建地鐵。這些區域用它們在數軸上的起始點和終止點表示。已...