

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、题目来源Ural 1574 Mathematicians and bracketshttp:/acm.timus.ru/problem.aspx?space=1&num=1574问题描述定义:Turn(s,k)输入:s核心算法 为算法刻画和证明的方便,引入一下定义:对于任意长为n括号串S,定义:当=(时,=1;当=)时,=-1。(i=1,2n)并且规定=。 对于任意括号串s定义:F(s,l,r)= 。并且规定对于输入的串s,Ak=F(s,1,k)。 依次计算A1A2An,同时算出他们的最小值m。若An0,则输出0;若An=0,则寻找有多少个k使得Ak=m,这个统计的个数就是答案,直接输出即可。
2、算法证明 引理:一个长为n串S是合法的当且仅当,对所有的k=1,2,3n-1都有F(S,1,k) 0,且F(S,1,n)=0。 引理的证明: 先证必要性:若一个长为n串S是合法的,则对所有的k=1,2,3n-1都有F(S,1,k) 0,且F(S,1,n)=0。 对字符串的长度n归纳: 当n=2的时候,一定有s=(),命题成立。 若当字符串长为2,3,4n-1时,命题都成立,则当长为n时: 若s是(t)形式的(其中t是合法) 则F(s,1,1)=10,F(s,1,i+1)=1+F(t,1,i)10(i=1,2n-2)F(s,1,n)=1+F(t,1,n-2)+(-1)=0 命题成立。 若s是ab
3、形式的(其中a,b是合法的),a长为k,b长为n-k。 则F(s,1,i)0,(i=1,2k) F(s,1,i+k)=F(s,1,k)+F(s,k+1,i+k)=F(a,1,k)+F(b,1,i)0,(i=1,2n-k) F(s,1,n)=F(a,1,k)+F(b,1,n-k)=0 命题成立。 必要性证毕。 再证充分性:若对所有的k=1,2,3n-1都有F(S,1,k) 0,且F(S,1,n)=0,则一个长为n串S是合法的。 对字符串的长度n归纳: 当n=2的时候,由于F(s,1,1)= =1或-1,F(s,1,1)0,所以F(s,1,1)=1,所以=(,故命题成立。 若当字符串长为2,3,4
4、n-1时,命题都成立,则当长为n时: 若存在一个k=1,2n-1使得F(s,1,k)=0则F(s,k+1,k+i)=F(s,1,k+i)-F(s,1,k)=F(s,1,k+i)0所以s的子串,s1s2sk和sk+1sk+2sn都是合法的,所以s是合法的。 命题成立。 若不存在一个k=1,2n-1使得F(s,1,k)=0 则F(s,1,i)0,即F(s,1,i)1(i=1,2n-1) 所以F(s,1,1)=F(s,1,n-1)=1F(s,2,i)=F(s,1,i)-F(s,1,1)=F(s,1,i)-10 (i=2,3n-1)F(s,2,n-1)=F(s,1,n-1)-F(s,1,1)=0 所以
5、s的子串,s2s3sn-1是合法的,所以s是合法的。 命题成立。 充分性证毕。 引理证毕! 回到原题: 由引理,“turn(s,k)是好的”等价于“对所有的j=1,2,3n都有F(s,k+1,k+j)0且An=0”而注意到:F(s,k+1,k+j)=F(s,1,k+j)-F(s,1,k)=Ak+j-Ak所以“F(s,k+1,k+j)0”等价于“Ak+jAk”另一方面,若An=0则对于任意的i=1,2n都有An+i=Ai。所以,当An=0时,“对所有的j=1,2,3n都有F(s,k+1,k+j)0”等价于“Ak是Ak+1 Ak+2 Ak+n的最小值”即“Ak是A1A2An的最小值”这就证明了算法
6、。算法实现 算法十分简单,没有实现上的问题。源代码var st:ansistring; i,n,s,min,ans:longint;begin readln(st); n:=length(st); s:=0; min:=0; ans:=0; for i:=1 to n do begin if sti=( then inc(s) else dec(s); if s=min then inc(ans); if smin then begin min:=s; ans:=1; end; end; if s=0 then writeln(ans) else writeln(0);end.原题描述1574
7、. Mathematicians and bracketsTime Limit: 1.0 secondMemory Limit: 64 MBOnce upon a time three mathematicians met The first of them wrote a sequence of brackets on a chalkboard. The second one wondered if there was a cyclic shift turning that sequence into a regular one. After thinking for a while, th
8、e third mathematician told the number of such shifts. You are given the sequence of brackets written by the first mathematician and you are to find the number told by the third mathematician. A regular sequence of brackets is defined as follows. An empty string is a regular sequence of brackets. If
9、a string a is a regular sequence of brackets, then the string (a) is also a regular sequence of brackets. If strings a and b are regular sequences of brackets, then the string ab is also a regular sequence of brackets. There are no other regular sequences of brackets. A string a is a cyclic shift of
10、 a string b if a and b have the same lengths and a consists of some (possibly empty) suffix from b followed by a prefix from b. InputThe only line of the input contains the sequence of brackets written by the first mathematician. The sequence is non-empty and its length doesnt exceed 105.OutputOutput the number of cyclic shift
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 如何快速了解一个行业
- 2025年高中年度工作方案
- 网络推广活动方案2025年模板
- 2025年三班级班主任下学期工作方案
- 2025年数学教研组工作工作方案
- 绩效考核操作实务
- 饭店质量管理
- 辽宁政法职业学院《中国古代文学(二)》2023-2024学年第一学期期末试卷
- 山东省牡丹区王浩屯镇初级中学2025年初三第一次诊断考试(化学试题文)试卷含解析
- 上海体育大学《工程经济》2023-2024学年第二学期期末试卷
- 银屑病门诊病历分享
- 劳务派遣信息管理系统
- 无人值守道闸运营方案
- 极地安全课件教学课件
- 2025年湖北省武汉市高考数学模拟试卷附答案解析
- GB/T 44588-2024数据安全技术互联网平台及产品服务个人信息处理规则
- 2024年全国半导体行业职业技能竞赛(半导体分立器件和集成电路装调工赛项)理论考试题库(含答案)
- 2024年深圳技能大赛-鸿蒙移动应用开发(计算机程序设计员)职业技能竞赛初赛理论知识
- 课件:《中华民族共同体概论》第四讲 天下秩序与华夏共同体的演进(夏商周时期)
- 统编版高中语文教材的“三种文化”内容及价值实现
- 信用卡协商还款协议书模板
评论
0/150
提交评论