

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高一数学二次函数与几何图形结合教学
- 交通车辆租赁协议书
- 地产行业智慧物业管理服务平台
- 中、大功率激光器相关行业投资方案
- 行车调度年终总结
- 预防留置尿管的感染措施
- 市场调研专员简历
- 红砖采购合同协议书
- 员工借调合同协议
- 物业公司客户满意度调查表(完整版)
- 物流园区仓储管理手册
- 职业技术学院《口腔颌面外科学》课程标准
- 高中英语北师大版(2019)必修第二册Unit 5 Humans and Nature Lesson 1 A sea story 教学设计
- 港口液体危化品装卸管理人员理论考试题及答案
- TSG ZF001-2006《安全阀安全技术监察规程》
- 13《少年中国说》课件
- 2024版小学英语新课程标准测试题及答案
- 《学前儿童艺术教育活动指导》第7章
- 2025年驾驶证资格考试科目一必刷题库及答案(共300题)
- 南京医科大学科技成果转移转化管理办法-资产管理处
- AQ 1110-2014 煤矿带式输送机用盘式制动装置安全检验规范(正式版)
评论
0/150
提交评论