算法分析习题课第二章_第1页
算法分析习题课第二章_第2页
算法分析习题课第二章_第3页
算法分析习题课第二章_第4页
算法分析习题课第二章_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

算法分析习题选讲(第二章Sicily地址

第二1150115115151007Toand1036Crypto1006Team1009MersenneComposite1050Numbers&1443Printer1156Binary1063Who'sthe1024Magic例Num:array[‘a’..’z’]ofintcharsicily115011511515状态的操作序列,长度不得超过上三种基本操12348123487658765123412341234876541235876B:121234876517248635解题思对模板进行状态搜在这棵三叉树上搜索,目的是求出最优解对这棵三叉树进行效果:勉强可过对这棵三叉树进行第一个可行解即是最优效果:轻松过掉1150,但过不了算法三:BFS对这棵三叉树进行第一个可行解即是最优判共有8!=40320个节算法三:BFS1.123487652.康托展 表示,在全排列中,比大而且位于前面statevoidupdate(statenew_state,int&head,int&tail,charopt){}voidbfs(statestart)intwhile(tail<head)stateififstateif}}1007ToandFro题目大给出一种,把一个字符串按列写给出加密后的字符串,还原本来的字符解题思 1036CryptoColumns题目大给定一个给出加密后的字符还原本来的字符 1006TeamRankings题对于两个排列p,qdistance(p,q)为在p,q中出现的相对次序不同的元素的解题思 枚举方法可用递voidcal(charrank[])intfor(inti=0;i<n;i++)if(count<ans_count)}}intdistance(chara[],charb[])intfor(inti=0;i<5;i++){posa[a[i]]=i;posb[b[i]]=i;for(charfor(char

if((posa[c1]-posa[c2])*(posb[c1]-return}voiddfs(charrank[],intlev)if(lev==5)}for(charc='A';c<='E';c++)if(!used[c])}}1009MersenneCompositeN素数Mn:定义为2n-1其中n为素数2n-1也为素数的给定k,求出所有素<=k,且满足1不是 数并且将它们分。方法若a是Mq的因数,则aa≡1moda≡±1mod方法查找资料可在n<=63内有以下Mn满足答只对这些数进行分vector<longlong>cal(longlongx)vector<longlonglongfor(i=3;i*i<=n;i+=2)while(n%i==0)}if(k!=0)}return}1050Numbers&Letters解题思求出所有可能的运算组合和顺得到最接近目标数的答voiddfs(inta[],intn)if(n==1)intfor(intfor(intj=i+i;j<n;j++)for(intif(k!=i&&k!=j)update_answer(b[m]=a[i]+a[j]);update_answer(b[m]=a[i]-a[j]);update_answer(b[m]=a[j]-a[i]);update_answer(b[m]=a[i]*a[j]);if(a[j]!=0&&a[i]%a[j]==0)update_answer(b[m]=a[i]/a[j]);}if(a[i]!=0&&a[j]%a[i]==0)update_answer(b[m]=a[j]/a[i]);}}}1443PrinterQueue题目大问其中某个任务是第几个被打印n≤解题思使用队列直接模直到特定的任务完成,输出答while(true)cur=if(cur.priority!=highest_priority)}elseif(cur.number==m)while highest_priority--}}1156Binarytree题目大解题思先找出没有父节点的节点,即根从根开始遍历进行先序遍1063Who'stheBoss题目大有n个人的编号,身高和工解题思可以使用STL里的set。(upper_bound())对每个询问,查找ID给出答案struct{intboolcmp(constemployee&a,constemployee{ifreturnreturn}boolcmp2(constemployee&a,constemployee{return}set<employee> torforfor(i=n-1;i>=0;i--)if(it==h.end())a[i].farther=-else}for(i=0;i<n;i++)if(a[i].fa

温馨提示

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

评论

0/150

提交评论