2016東莞市特長生考試 遊戲問題

2021-07-30 06:22:31 字數 1351 閱讀 4741

2016東莞市特長生考試 遊戲問題

description

「五四」青年節到了,某學校要舉行乙個遊園活動,其中有乙個這樣的遊戲: n 個同學(編號從 0 到 n-1)圍坐一圈,按照順時針方向給 n 個位置編號,從0 到 n-1。最初,第 0 號同學在第 0 號位置,第 1 號同學在第 1 號位置,„„, 

依此類推。 

遊戲規則如下:每一輪第 0 號位置上的同學順時針走到第 m 號位置,第 1號位置同學走到第 m+1 號位置,„„,依此類推,第 n − m 號位置上的同學走到第 0 號位置,第 n-m+1 號位置上的同學走到第 1 號位置,„„,第 n-1 號位置上的同學順時針走到第 m-1 號位置。 

現在,一共進行了 10^k 輪,請問 x 號同學最後走到了第幾號位置。

input

從檔案 game.in 讀入資料,輸入共 1 行,包含 4 個整數 n、m、k、x,每兩個整數之間用乙個空格隔開。

output

結果輸出到檔案 game.out,輸出共 1 行,包含 1 個整數,表示 10^k 輪後 x 號小夥伴所在的位置編號。

分析:經過n輪後每個人都會回到原來的位置,所以只要模擬10^k mod n輪,用快速冪求出10^k mod n即可。

** vara:array[0..1000000] of longint;

p,n,m,k,x,i,j,l:longint;

procedure try(t:longint);

begin

if t=0 then p:=1

else begin

try(t div 2);

p:=(p mod n)*(p mod n) mod n;

if odd(t) then p:=(p mod n)*(10 mod n);

end;

end;

begin

//assign(input,'game.in');reset(input);

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

readln(n,m,k,x);

try(k);

for i:=0 to n-1 do

begin

a[i]:=i-p*m;

while a[i]<0 do

a[i]:=a[i]+n;

if a[i]=x then

begin

writeln(i);

//close(input);close(output);

halt;

end;

end;

end.

2016東莞市特長生考試 子數整數

對於乙個五位數,可將其拆分為三個數字 sub1 a1a2a3,sub2 a2a3a4,sub3 a3a4a5 現在給定乙個正整數 k,要求你程式設計求出 10000 包括 10000 到 30000 包括 30000 之間所有滿足下述條件的五位數,條件是這些五位數的三個子數 sub1,sub2,su...

2016東莞市特長生考試 村莊重建

2016東莞市特長生考試 村莊重建 time limit 10000ms memory limit 256000k total submit 3 accepted 1 case time limit 1000ms description b 地區在 過後,所有村莊都造成了一定的損毀,而這場 卻沒對公...

2016東莞市特長生考試 字串距離 dp

2016東莞市特長生考試 字串距離 description 設有字串 x,我們稱在 x 的頭尾及中間插入任意多個空格後構成的新字元 串為 x 的擴充套件串,如字串 x 為 abcbcd 則字串 abcb cd a bcbcd 和 abcb cd 都是 x 的擴充套件串,這裡 代表空格字元。如果 a1...