算法分析与设计课件:习题选讲第六章bywxyz.ppt
《算法分析与设计课件:习题选讲第六章bywxyz.ppt》由会员分享,可在线阅读,更多相关《算法分析与设计课件:习题选讲第六章bywxyz.ppt(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、习题选讲习题选讲赵浩泉赵浩泉2011-12-291第六章第六章n1011 Lennys Lucky Lotton1121 Tri Tilingn1264 Atomic Car Racen1828 Minimaln1527 Tiling a Grid With Dominoesn1148 过河过河n1176 Two Endsn1163 Tourn1345 能量项链能量项链n1687 Permutation2011-12-2921011 Lennys Lucky Lotton题目大意:题目大意:n给出给出N和和M,问有多少个长度为,问有多少个长度为N的序列,的序列,使得每个数的范围都在使得每个数的
2、范围都在1,M之间,并且序之间,并且序列中每一个数至少是前一个数的两倍。列中每一个数至少是前一个数的两倍。2011-12-2931011 Lennys Lucky Lotton解题思路:解题思路:ndpij表示考虑前表示考虑前i位且第位且第i位为位为j的方案。的方案。ndpij=sumdpi-1k|1=k=j/2n先枚举位数先枚举位数i,再枚举最后一个数,再枚举最后一个数j,最后统,最后统计计k。n时间复杂度时间复杂度O(N*M*M)。2011-12-2941011 Lennys Lucky Lottonfor(j=1;j=2000;j+)ndp1j=1;nfor(i=2;i=10;i+)nf
3、or(j=1;j=2000;j+)ndpij=0;nfor(k=1;k*2 51-32-43-52-52011-12-2981121 Tri Tilingn状态转移:状态转移:5-35-25-04-23-52011-12-2991121 Tri Tilingn初始第初始第0列是状态列是状态0,终止第,终止第n+1列是状态列是状态5。ndp00=1;nfor(i=1;i=n+1;i+)ndpi5+=dpi-10;ndpi3+=dpi-11;ndpi4+=dpi-12;ndpi5+=dpi-12;ndpi1+=dpi-13;ndpi5+=dpi-13;ndpi2+=dpi-14;ndpi3+=dp
4、i-15;ndpi2+=dpi-15;ndpi0+=dpi-15;n2011-12-29101264 Atomic Car Racen题目大意:题目大意:n在一次赛车比赛中,在检查点换轮胎需要在一次赛车比赛中,在检查点换轮胎需要花费一定时间,而速度与离上一次换轮胎花费一定时间,而速度与离上一次换轮胎的路程相关,问从起点到终点的最少时间。的路程相关,问从起点到终点的最少时间。2011-12-29111264 Atomic Car Racen解题思路:解题思路:n先求出从换完轮胎到走每个距离段所用的时间。先求出从换完轮胎到走每个距离段所用的时间。nd0=0;nfor(i=0;ian;i+)nnif
5、(ir)ntemp=1/(v-f*(r-i);nelsentemp=1/(v-e*(i-r);ndi+1=di+temp;n2011-12-29121264 Atomic Car Racen再给出每两个检查点(包括起点)之间的再给出每两个检查点(包括起点)之间的用时。用时。nfor(i=0;in;i+)nfor(j=i+1;j=n;j+)ncij=daj-ai;2011-12-29131264 Atomic Car Racen再用递归的方法进行动态规划。再用递归的方法进行动态规划。ndpij=mincij,dpik+dpkj+b|ikj2011-12-29141264 Atomic Car R
6、acendouble cal(int s,int t)nif(visitedst)nreturn dpst;nvisitedst=true;ndpst=cst;nfor(int i=s+1;it;i+)ndouble temp=cal(s,i)+cal(i,t)+b;nif(tempdpst)ndpst=temp;nnreturn dpst;n2011-12-29151828 Minimaln题目大意:题目大意:n给出两个集合给出两个集合S1,S2,在,在S2中选出一些不中选出一些不重复的数与重复的数与S1每个数匹配,使得匹配的数每个数匹配,使得匹配的数的差的绝对值尽量小。的差的绝对值尽量小。
7、n集合中数的个数不超过集合中数的个数不超过500。2011-12-29161828 Minimaln解题思路:解题思路:n首先证明,在首先证明,在S1中取两个数中取两个数a1,b1,在,在S2中取两中取两个数个数a2,b2,若,若a1b1,a2b2,则,则|a1-a2|+|b1-b2|a1-b2|+|a2-b1|。n即对于已排序的即对于已排序的S1的数,只会按顺序对应已排序的数,只会按顺序对应已排序的的S2的数。的数。ndpij表示表示S1中前中前i个数与个数与S2中前中前j个数匹配时,个数匹配时,第第i个数或之前的匹配数值差的绝对值之和。个数或之前的匹配数值差的绝对值之和。2011-12-2
8、9171828 Minimalnsort(s1,s1+n);nsort(s2,s2+m);ndp00=abs(s10-s20);nfor(i=1;im;i+)n dp0i=min(dp0i-1,abs(s10-s2i);n for(i=1;in;i+)n dpii=dpi-1i-1+abs(s1i-s2i);n for(j=i+1;j1,0-2,0-3,0-5,1-2,1-0,2-1,2-0,3-0,3-4,4-3,5-0,0-02011-12-29201527 Tiling a Grid With Dominoesndp00=1;nfor(i=1;i=n+1;i+)ndpi0+=dpi-10
9、;ndpi1+=dpi-10;ndpi2+=dpi-10;ndpi3+=dpi-10;ndpi5+=dpi-10;ndpi2+=dpi-11;ndpi0+=dpi-11;ndpi1+=dpi-12;ndpi0+=dpi-12;ndpi0+=dpi-13;ndpi4+=dpi-13;ndpi3+=dpi-14;ndpi0+=dpi-15;n2011-12-29211148 过河过河n题目大意:题目大意:n桥的起点为桥的起点为0,终点为,终点为L,其中地有,其中地有M个石个石子。青蛙每次跳的范围为子。青蛙每次跳的范围为S,T,问要跳过,问要跳过桥最小踩到石子次数。桥最小踩到石子次数。n1=L=10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 分析 设计 课件 习题 第六 bywxyz
限制150内