- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
陨石的秘密-Read
陨石的秘密 --NOI2001 Day2 Task3 Description 由{},[],()三种括号对构成的字串,括号必须配对,可以嵌套,但不得交叉。并且 () 内不能出现 {} 和 [],[] 内不能出现 {}。 定义其深度为最大嵌套层数。 给定三种括号的对数 L1, L2, L3 及深度 D,求满足条件的字串的总数(对11380求余)。 0≤L1,L3,L3≤10,0≤D≤30。 Sample ()(())[] 深度为2 {()[()]} 深度为3 {{[[(())]]}} 深度为6 ()([]){} 不合法 {([())]} 不合法 分析 显然应当使用递推。 对于串的递推,常将其分割为两个或多个较短的子串求解。 如果将括号串S分割为两个完全独立的子串L,R,则有N(S)=N(L)*N(R),N(S)表示与串S满足相同的限制条件的字串的总数。两子串的完全独立保证了不会有重复计数。 分析 完全独立的两子串应具有互斥的属性。 可以用由串首括号组成的括号对将其余括号按照与此括号的位置关系分为内外两部分,并且这两部分完全独立。 递推公式 问题的解 显然,问题的解为 (f(L1,L2,L3,D)-f(L1,L2,L3,D-1)) mod 11380 (D0) 或 f(L1,L2,L3,D) mod 11380 (D=0) 时间复杂度:O(D L12 L22 L32) 空间复杂度:O(D L1 L2 L3) * * 贾晔 2003.7.22. 如果定义f(D,L1,L2,L3)为由L1对{},L2对[],L3对()组成的深度不大于D的括号串的总数,则有 由[]分割 由()分割 由{}分割 空串 * * * * *
文档评论(0)