1187 陨石的秘密.pptVIP

  • 8
  • 0
  • 约小于1千字
  • 约 7页
  • 2017-06-16 发布于河南
  • 举报
1187 陨石的秘密

陨石的秘密 --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 L1

文档评论(0)

1亿VIP精品文档

相关文档