隕石的秘密

2022-02-15 23:58:39 字數 2011 閱讀 3802

公元12023年,一顆巨大的隕石墜落在南極。

於是,災難降臨了,地球上出現了一系列反常的現象。

當人們焦急萬分的時候,一支中國科學家組成的南極考察隊趕到了出事地點。

經過一番偵察,科學家們發現隕石上刻有若干行密文,每一行都包含5個整數:

1 1 1 1 6

0 0 6 3 57

8 0 11 3 2845

著名的科學家ss發現,這些密文實際上是一種複雜運算的結果。

1. ss表示式是僅由』』,』[『,』]』,』(』,』)』組成的字串。

2. 乙個空串是ss表示式。

3. 如果a是ss表示式,且a中不含字元』』,』[『,』]』,則(a)是ss表示式。

4. 如果a是ss表示式,且a中不含字元』』,則[a]是ss表示式。

5. 如果a是ss表示式,則是ss表示式。

6. 如果a和b都是ss表示式,則ab也是ss表示式。

例如

()(()) 

}

都是ss表示式。

()()() 

[()

不是ss表示式。

乙個ss表示式e的深度d(e)定義如下:

例如()的深度為2。

密文中的複雜運算是這樣進行的:

設密文中每行前4個數依次為l1,l2,l3,d,求出所有深度為d,含有l1對{},l2對,l3對()的ss串的個數,並用這個數對當前的年份11380求餘數,這個餘數就是密文中每行的第5個數,我們稱之為神秘數。

密文中某些行的第五個數已經模糊不清,而這些數字正是揭開隕石秘密的鑰匙。

現在科學家們聘請你來計算這個神秘數。

共一行,4個整數 l1,l2,l3,d。

共一行,包含乙個整數,即神秘數。

0≤l1,l2,l3≤10,

0≤d≤30

1 1 1 2
8
先想到 f[d][i][j][k] 表示深度為d, i個{}, j個, k個()的方案數

新增括號轉移很簡單,但是

對於 相同深度不好轉移比如

f[d][i][j][k] += f[d][i - ii][j - jj][k - kk] + f[d][ii][jj][kk]
這個轉移的重複問題很難解決,

eg: {}() + {}() == {} + (){}() == {} + (){}() 

發現重複了三次,如果更長的串呢?重複很難解決

那麼乾脆通過字首和思想來解

f[d][i][j][k] 表示深度 小於等於 d, i個{}, j個, k個()的方案數

那麼f[d][a][b][c] - f[d - 1][a][b][c]即為所求

怎麼轉移從f[d-1]到f[d]呢? f[d - 1] (加括號) * f[d] (拼接)即可 (所以f[0~d][0][0][0]初始化為1)

詳細看**

poj 1187 隕石的秘密

題目大意 求出指定要求的字串的種數,用dp a b c d 記錄有a個 b個,c個 深度為d的字串的個數,然後列舉左邊一段外層加括號的狀態,與右邊對應狀態相乘即可。include include include include include include include include incl...

恩難到了 隕石的秘密

描述 公元19881231年,一顆巨大的隕石墜落在世界的政治文化中心cs。於是,災難降臨了,地球上出現了一系列反常的現象。當人們焦急萬分的時候,一支由cs科學家組成的考察隊趕到了出事地點。經過一番偵察,科學家們發現隕石上刻有若干行密文,每一行都包含5個整數 1 1 1 1 6 0 0 6 3 57 ...

POJ1187 隕石的秘密

題目大意 定義乙個串 只含有 3種 6個 字元。定義 ss 串 空串是ss表示式。若a是ss表示式,且a串中不含有中括號和大括號,則 a 是ss表示式。若a是ss表示式,且a串中不含有大括號,則 a 是ss表示式。若a是ss表示式,則是ss表示式。定義ss串深度 空串深度為0.若a可以寫成 a 其中...