集训队作业孪生项链解题报告_第1页
集训队作业孪生项链解题报告_第2页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、孪生项链解题报题意简m 的合法二进制串,求它在所有长度不超过 n 的合法二进制串中的后继;二、求长度恰好为 k算法分 进制串Ss0s1s2 sl1,把它顺时针写成一圈,首尾相连。不失一般性,假设从位置0k(1 k l k 是满足条件的最小值)开始顺时针得到的二进制串是相等的,即 si s(ik)modl 。由此,可以得到s0 sk sik s(i1)kmodl(ik l ,且i 是满足条件的最大值)。因为ik l ,所以(i1)kmodl i1)kl ik lk kk 又是满足条件的最小值,因此(i1)kmodl0,即k|l。所以,S就是由子串Ts0s1s2 sk1k现 次构成的,必要性得证。

2、l任务一:为了保证得到的串字典序刚好大于原串,且满足,把长度为 m 的RR nR n 位,设QQ011。其实这一步就是对一个二进制数加 1,并去掉结果后面所有的 0。此时,Q 即所求二进制串。从步骤中,可以保证结果的最优性和,具体的证明从略。本任务的时间复杂度为O(n),空间复杂度为O(n。任务二:这个任务直接考虑较为复杂可以分步间接地考虑。设 fi 表示长度为 且满足性质2 的二进制串的总数,根据性质2 有递推关系 ifk k因为每个最小表示都对应着数量与串的长度相等的二进制串。本任务的时间复杂度为O(ck2,空间复杂度为O(c k,其中c c 为高精度运算的时间和空间常数1 源程#incl

3、ude #include #include #include usingnamespacestd;ifstream fin(twins.in); /classofbigclassbigint: bigint() bigint(intn)for(;n!=0;n/=base) push_back(n%bigint&operator+=(constbigint&n)if(size()resize(size() + 1);for(inti=0;isize();i+) (*this)i += ni;returnbigint&operator-=(constbigint&n)for(inti=0;i=0;

4、i-m=m*base+(*this)i; (*this)i = m / n;m%=returnfriendostream&operator(ostream&,conststaticconstintbase=10000; static const int width = 4; bigint& simplify() for(inti=0;isize();if(*this)i=(*this)i-=(*this)i+while(!empty()&back()=0) returnostream&operator(ostream&os,constbigint&n)returnos0; os =0;i-ossetfill(0)setw(bigint:width)nmk; fin s;/Subtask1:thesuccessivestringfor(;r.length()+s.length()n;r+=r+=s.substr(0,n-r.erase(r.rfind(0)+rr.length()-1=/Subtask2:thenumberofk-beadbigintt=bigint*f=newbigintk+1; f1 = 2;for(inti=2;i=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论