P2628 冒險島 AC於2018 10 31

2021-08-30 14:05:15 字數 1696 閱讀 6667

原題

冒險島是費老師新開發的一種情景模擬電腦的遊戲,通過擲骰子(1~6個數字之間),讓一種人物(棋子)在棋紙上從左至右的行走,從而模擬冒險的故事……

棋紙上有一條從左至右的很長的路,整條路是一連串符號組成,表明路的狀況,棋子必須在符號組成的路上行走。每擲一下骰子得到的數字,棋子就可以走擲得的數字所對應的步數,比如擲3,就可以走3步。

路上有兩種特殊符號可以改變棋子的行走。

一種是「>」符號,一旦棋子走完了擲骰子的步數,最終停留在這個符號上,後面有緊跟著2個以上「>」,那麼棋子就可以獲得前進獎勵,可以沿著「>」一直一步步前進,直到遇到乙個不是「>」的符號位置停下來。

還有一種是「*」符號,一旦棋子走完了擲骰子的步數,最終停留在這個符號上,後面又緊跟著兩個以上「*」,就要受到後退懲罰,需要退後k步,這個k步就是從當前「*」開始的連續的「*」的數量。

每次擲數後,獎勵或懲罰至多一次,如果獎勵或懲罰後棋子又落在第二種特殊符號上,則不能再受到獎勵或懲罰。

如果走的棋子超出棋紙右邊界最後乙個符號,則停在最後乙個符號上;如果超出左邊界,則停在第乙個符號上。

若干次擲骰子後,請問遊戲中的人物(棋子)走到了哪步?離終點還差幾步?

輸入格式:

第一行為乙個字串s,字串中的每個字元表示棋紙的路的狀況。

第二行是乙個n,表示擲了n次骰子。

第三行是n個整數(1~6的範圍),表明擲了n次骰子得到的數字,數字之間有乙個空格。

輸出格式:

只有兩個數字,表明目前所在符號的序號和離終點符號的步數,數子中間有乙個空格。注意輸出末尾有換行。

輸入樣例#1:

yhfa>>>fhsdfa***>>>foaoad

35 6 6

輸出樣例#1:

20 5
【樣例說明】

在遊戲中,第一次擲的是5,則走到第乙個》的位置,獲得獎勵前進至左起第二個f處。第二次擲的是6,則走到*的位置,受懲罰退3步,至d處。第三次擲的是6,則走至左起第四個》號處,獲獎勵前進至f。最終棋子停留的符號是第20個(從左至右的數),離終點符號d(含)相差5步數。

【資料範圍】

對於50%的資料,1<=s的長度<=255,0<=n<=1000。

對於100%的資料,256<=s的長度<=1000000,0<=n<=100000。

#include#include#include#include#includeusing namespace std;

char s[1000010];

int add[1000010],a[1000010];

int main()

if(s[i]=='*')

}a[1]--; //由於所有測試資料的起點都為-1,所以第一步只能走啊a[1]-1步

k=0;

for(i=1;i<=n;i++)

if(k<0) //如果當前位置越出邊界,則讓它回到邊界

k=0;

if(k>len-1)

k=len-1;

}k++;//題目中的第乙個字元的位置是一,輸入的字串的第乙個字元的位置是零,故需再次加上一

printf("%d %d\n",k,len-k);

return 0;

}

洛谷 P2628 冒險島

冒險島是費老師新開發的一種情景模擬電腦的遊戲,通過擲骰子 1 6個數字之間 讓一種人物 棋子 在棋紙上從左至右的行走,從而模擬冒險的故事 棋紙上有一條從左至右的很長的路,整條路是一連串符號組成,表明路的狀況,棋子必須在符號組成的路上行走。每擲一下骰子得到的數字,棋子就可以走擲得的數字所對應的步數,比...

洛谷 P2628 冒險島 模擬 2 7

冒險島是費老師新開發的一種情景模擬電腦的遊戲,通過擲骰子 1 6個數字之間 讓一種人物 棋子 在棋紙上從左至右的行走,從而模擬冒險的故事 棋紙上有一條從左至右的很長的路,整條路是一連串符號組成,表明路的狀況,棋子必須在符號組成的路上行走。每擲一下骰子得到的數字,棋子就可以走擲得的數字所對應的步數,比...

琳琳冒險島

遊戲已經巨變,但是冒險家的心沒有變換,琳琳冒險發布站秉持著聖潔的冒險覺醒之心,幫助冒險家在繁忙工作之餘回到多彩的冒險世界,暢談大家的冒險經歷與公升級要訣,讓冒險島這個藝術品更加的熠熠生輝。開源py版登入器部分源 if name main root tk.tk root.title 櫻木冒險島登入引導...