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...