Login with GitHub. Nope?
修正 C++ 的程式碼在使用一定量動態記憶體後會產生 RF 的問題 @ 2019/12/6 4:45pm NeoHOJ 強勢復活中 (Open beta)
Submit  Ranklist

Problem : 250 - Linear Garden

Problem Statistics

Solved Member: 14  Submission: 58  User Tried: 14

Statement:

Ramesses二世剛剛獲勝歸來。為了紀念這一勝利,他決定建造一座壯觀的花園。這個花園裡的植物排成一行,從他在Luxor的宮殿直達Karnak的神廟。所種植的植物只有蓮花和紙莎草,因為它們分別代表上埃及和下埃及。

這個花園中必須有N棵植物,並且必須保持平衡,即在花園中任取一段,其中蓮花和紙莎草的棵數之差不能超過2。

花園可以被表示為由字母L(蓮花)和P(紙莎草)組成的字符串。例如,當N等於5時,有14種可能的平衡花園,按照字母排序如下:LLPLP,LLPPL,LPLLP,LPLPL,LPLPP, LPPLL,LPPLP,PLLPL,PLLPP,PLPLL,PLPLP,PLPPL,PPLLP 和PPLPL。

給定長度的所有可能的平衡花園可按字母順序排序,並從1開始編號。例如,當N等於5時,第12號花園是PLPPL。

Task:

任務寫一個程序,給定植物棵數N和一個表示平衡花園的字符串,計算該花園的序號模M的結果,其中M是一個給定的整數。

注意,在問題求解中,數值M 除了簡化計算外沒有其他的作用。

限制1 <= N <= 1,000,000, 7 <= M <= 10,000,000

評分有總分40分的測試點的N不超過40。

Input:Output:

程式從標準輸入讀入下列數據:

•第一行是整數N,說明花園中植物的數量。

•第二行是整數M。

•第三行是長度為N的由字符L或P組成的字符串,表示一個平衡的花園。
程式輸出一個介於0到M-1的整數至標準輸出。輸出的整數是,輸入的平衡花園的編號,除以M之後所得到的餘數。

Sample Input:Sample Output:

Sample #1 :
5
7
PLPPL

Sample #2 :
12
10000
LPLLPLPPLPLL
Sample #1 :
5

Sample #2 :
39

Source:

IOI 2008

Problem Setter

Testdata:

TestTimeMemoryScore
0-11500ms65536kb
0-21500ms65536kb
11500ms65536kb3
21500ms65536kb3
31500ms65536kb3
41500ms65536kb3
51500ms65536kb4
61500ms65536kb4
71500ms65536kb4
81500ms65536kb4
91500ms65536kb4
101500ms65536kb4
111500ms65536kb4
12-11500ms65536kb5
12-21500ms65536kb
13-11500ms65536kb5
13-21500ms65536kb
14-11500ms65536kb5
14-21500ms65536kb
151500ms65536kb5
161500ms65536kb5
171500ms65536kb5
181500ms65536kb5
191500ms65536kb5
201500ms65536kb5
211500ms65536kb5
221500ms65536kb5
23-11500ms65536kb5
23-21500ms65536kb
23-31500ms65536kb