NOIP2016 day1玩具謎題

2021-07-25 03:20:41 字數 2418 閱讀 2058

題目:

小南有一套可愛的玩具小人,它們各有不同的職業。 

有一天,這些玩具小人把小南的眼鏡藏了起來。小南發現玩具小人們圍成了乙個 圈,它們有的面朝圈內,有的面朝圈外。如下圖: 

這時singer 告訴小南乙個謎題:「眼鏡藏在我左數第 3 個玩具小人的右數第 1 個玩 具小人的左數第 2 個玩具小人那裡。」 

小南發現,這個謎題中玩具小人的朝向非常關鍵,因為朝內和朝外的玩具小人的左右方向是相反的:面朝圈內的玩具小人,它的左邊是順時針方向,右邊是逆時針方向;而面向圈外的玩具小人,它的左邊是逆時針方向,右邊是順時針方向。 

小南一邊艱難地辨認著玩具小人,一邊數著: 

「singer 朝內,左數第 3 個是archer。 

「archer 朝外,右數第 1 個是thinker。 

「thinker 朝外,左數第 2 個是writer。 「所以眼鏡藏在writer 這裡! 」 

雖然成功找回了眼鏡,但小南並沒有放心。如果下次有更多的玩具小人藏他的眼鏡,或是謎題的長度更長,他可能就無法找到眼鏡了。所以小南希望你寫程式幫他解 決類似的謎題。這樣的謎題具體可以描述為: 

有 n 個玩具小人圍成一圈,已知它們的職業和朝向。現在第 1 個玩具小人告訴小南乙個包含 m 條指令的謎題,其中第 i 條指令形如「左數/右數第 si 個玩具小人」。你需要輸出依次數完這些指令後,到達的玩具小人的職業。

【輸入格式】

從檔案toy.in 中讀入資料。 

輸入的第一行包含兩個正整數 n, m ,表示玩具小人的個數和指令的條數。 

接下來 n 行,匈行包含乙個整數和乙個字串,以逆時針為順序給出匈個玩具小人的朝向和職業。其中 0 表示朝向圈內, 1 表示朝向圈外。保證不會出現其他的數。字串長度不超過 10 且僅由小寫字母構成,字串不為空,並且字串兩兩不同。整數和字串之間用乙個空格隔開。 

接下來 m 行,其中第 i 行包含兩個整數 ai, si ,表示第 i 條指令。若 ai = 0 ,表示向 左數 si 個人;若 ai = 1 ,表示向右數 si 個人。保證 ai 不會出現其他的數, 1 ≤ si < n 。

【輸出格式】

輸出到檔案toy.out 中。 

輸出乙個字串,表示從第乙個讀入的小人開始,依次數完 m 條指令後到達的小人的職業。

分析:

暴力解決。

附上**:

const

maxn=100000;

varn,m:longint;

dir:array [0..maxn] of longint;

s:array [0..maxn] of string;

procedure init;

vari,x,y,now:longint;

begin

readln(n,m);

for i:=1 to n do

begin

readln(dir[i],s[i]);

delete(s[i],1,1);

end;

now:=1;

for i:=1 to m do

begin

readln(x,y);

if x=0 then

begin

if dir[now]=0 then

begin

now:=now-y;

if now<=0 then

inc(now,n);

continue;

end;

if dir[now]=1 then

begin

inc(now,y);

if now>n then

dec(now,n);

continue;

end;

end;

if x=1 then

begin

if dir[now]=0 then

begin

inc(now,y);

if now>n then

dec(now,n);

continue;

end;

if dir[now]=1 then

begin

dec(now,y);

if now<=0 then

inc(now,n);

continue;

end;

end;

end;

writeln(s[now]);

end;

begin

assign(input,'toy.in');reset(input);

assign(output,'toy.out');rewrite(output);

init;

close(input);close(output);

end.

Noip2016day1 玩具迷題toy

題目描述 小南有一套可愛的玩具小人,它們各有不同的職業。有一天,這些玩具小人把小南的眼鏡藏了起來。小南發現玩具小人們圍成了乙個圈,它們有的面朝圈內,有的面朝圈外。如下圖 這時singer告訴小南乙個謎題 眼鏡藏在我左數第3個玩具小人的右數第1個玩具小人的左數第2個玩具小人那裡。小南發現,這個謎題中玩...

noip 2016 day1 T1玩具謎題

小南有一套可愛的玩具小人,它們各有不同的職業。有一天,這些玩具小人把小南的眼鏡藏了起來。小南發現玩具小人們圍成了乙個圈,它們有的面朝圈內,有的面朝圈外。如下圖 這時singer告訴小南乙個謎題 眼鏡藏在我左數第3個玩具小人的右數第1個玩具小人的左數第2個玩具小人那裡。小南發現,這個謎題中玩具小人的朝...

Noip2016day1 天天愛跑步running

題目描述 小c同學認為跑步非常有趣,於是決定製作一款叫做 天天愛跑步 的遊戲。天天愛跑步 是乙個養成類遊戲,需要玩家每天按時上線,完成打卡任務。這個遊戲的地圖可以看作一一棵包含 個結點和 條邊的樹,每條邊連線兩個結點,且任意兩個結點存在一條路徑互相可達。樹上結點編號為從到的連續正整數。現在有個玩家,...