版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、关于基本算法递推法实例第一张,PPT共八十六页,创作于2022年6月采用具体化、特殊化的方法寻找规律 平面上n条直线,任两条不平行,任三条不共点,问这n条直线把这平面划分为多少个部分?第二张,PPT共八十六页,创作于2022年6月 设这n条直线把这平面划分成Fn个部分。 先用具体化特殊化的方法寻找规律,如图所示,易知的前几项分别为 这些数字之间的规律性不很明显, 较难用不完全归纳法猜出Fn的一般表达式。但我们可以分析前后项之间的递推关系,因为这些图形中,后一个都是由前一个添加一条直线而得到的,添加一条直线便增加若干个区域。 第三张,PPT共八十六页,创作于2022年6月 一般地,设原来的符合题
2、意的n-1条直线把这平面分成 个区域,再增加一条直线l,就变成n条直线,按题设条件,这l必须与原有的n-1条直线各有一个交点, 且这n-1个交点及原有的交点互不重合。这n-1个交点把l划分成n个区间,每个区间把所在的原来区域一分为二,所以就相应比原来另增了n个区域,即: 这样,我们就找到了一个从Fn-1到Fn的的递推式,再加上已知的初始值F1=2,就可以通过n-1步可重复的简单运算推导出Fn的值。var a,i,n:longint;begin read(n); a:=2; for i:=2 to n do a:=a+i; writeln(a);end.第四张,PPT共八十六页,创作于2022年
3、6月 在平面内画五条直线和一个圆,最多能把平面分成多少部分? 第五张,PPT共八十六页,创作于2022年6月平面上有8个圆,最多能把平面分成几部分? 123456Fn=Fn-1+2 (n-1) 第六张,PPT共八十六页,创作于2022年6月 圆周上两个点将圆周分为两半,在这两点上写上数1;然后将两段半圆弧对分,在两个分点上写上相邻两点上的数之和;再把4段圆弧等分,在分点上写上相邻两点上的数之和,如此继续下去,问第6步后,圆周上所有点上的数之和是多少? 第七张,PPT共八十六页,创作于2022年6月分析:先可以采用作图尝试寻找规律。第一步:圆周上有两个点,两个数的和是1+1=2;第二步:圆周上有
4、四个点,四个数的和是1+1+2+2=6;增加数之和恰好是第一步圆周上所有数之和的2倍。第三步:圆周上有八个点,八个数的和是1+1+2+2+3+3+3+3=18,增加数之和恰好是第二步数圆周上所有数之和的2倍。第四步:圆周上有十六个点,十六个数的和1+1+2+2+3+3+3+3+4+4+4+4+5+5+5+5=54,增加数之和恰好是第三步数圆周上所有数之和的2倍。这样我们可以知道,圆周上所有数之和是前一步圆周上所有数之和的3倍。设An为第n步后得出的圆周上所有数之和,则An=3An1第八张,PPT共八十六页,创作于2022年6月 在nn的正方形钉子板上(n是钉子板每边上的钉子数),求连接任意两个
5、钉子所得到的不同长度的线段种数.Fn=Fn-1+n第九张,PPT共八十六页,创作于2022年6月 如图1,是棱长为a的小正方体,图2,图3由这样的小正方体摆放而成。按照这样的方法继续摆放,自上而下分别叫第一层、第二层、第n层,第n层的小正方体的个数记为sn。请写出求sn的递推公式。1 3 6 10第十张,PPT共八十六页,创作于2022年6月 如图,有边长为1的等边三角形卡片若干张,使用这些三角形卡片拼出边长分别是2,3,4,的等边三角形(如图所示)根据图形推断,写出求每个等边三角形所用卡片总数sn的递推公式 4 9 16 25 36第十一张,PPT共八十六页,创作于2022年6月 为庆祝“五
6、一”国际劳动节,市政府决定在人民广场上增设一排灯花,其设计由以下图形逐步演变而成,其中圆圈代表灯花中的灯泡,n代表第n次演变过程,s代表第n次演变后的灯泡的个数。仔细观察下列演变过程,当n=6时,s=_。94 Sn=2sn-1+2Sn=3sn-1-2sn-2第十二张,PPT共八十六页,创作于2022年6月 某公共汽车线路上共有15个车站(包括起点站和终点站)。在每个站上车的人中,恰好在以后各站下去一个。要使行驶过程中每位乘客都有座位,车上至少要备有多少个座位? 从表中可以看出车上人数最多是56人,所以车上至少要准备56个座位。第十三张,PPT共八十六页,创作于2022年6月练习1 将一张长方形
7、的纸对折,可得到一条折痕,继续对折,对折时每次折痕与上次的折痕保持平行,连续对折三次后,可得到条折痕,那么对折n次,可得到几条折痕?第十四张,PPT共八十六页,创作于2022年6月 Fn=2*Fn-1+1 var a,i,n:longint;begin read(n); a:=1; for i:=2 to n do a:=2*a+1; writeln(a);end.第十五张,PPT共八十六页,创作于2022年6月var f,s,i,n,j:longint;begin read(n); f:=1; for i:=2 to n do begin s:=1; for j:=1 to i-1 do s
8、:=s*2; f:=f+s; end; writeln(f);end.Fn=Fn-1+2n-1 第十六张,PPT共八十六页,创作于2022年6月var加入高精度运算 a,b:array1.100 of integer; i,j,n:integer;begin readln(n); a100:=1 ;n=1时 b100:=1;20=1 for i:= 2 to n do begin for j:= 100 downto 1 do bj:=bj*2;递推出2i-1 for j:= 100 downto 2 do if bj=10 then begin bj-1:=bj-1+bj div 10 ;
9、bj:=bj mod 10; end; for j:= 100 downto 1 do begin aj:=aj+bj; if aj=10 then begin aj-1:=aj-1+aj div 10 ; aj:=aj mod 10; end; end; end; j:=1; while aj=0 do j:=j+1; for i:= j to 100 do write(ai) ; end.第十七张,PPT共八十六页,创作于2022年6月练习2 如图,第一次把三角形剪去一个角后,图中最多有四个角,第二次再把新产生的角各剪一刀,如此下去,每一次都是把新产生的角各剪一刀,则第n次剪好后,图中最多
10、有多少个角? 4 6 10 18 34 Fn=Fn-1+2n-1第十八张,PPT共八十六页,创作于2022年6月var f,s,i,n,j:longint;begin read(n); f:=4; for i:=2 to n do begin s:=1; for j:=1 to i-1 do s:=s*2; f:=f+s; end; writeln(f);end.第十九张,PPT共八十六页,创作于2022年6月var a,b:array1.100 of longint; i,j,n:longint;begin readln(n); a100:=4 ; b100:=1; for i:= 2 to
11、 n do begin for j:= 100 downto 1 do bj:=bj*2; for j:= 100 downto 2 do if bj=10 then begin bj-1:=bj-1+bj div 10 ; bj:=bj mod 10; end; for j:= 100 downto 1 do begin aj:=aj+bj; if aj=10 then begin aj-1:=aj-1+aj div 10 ; aj:=aj mod 10; end; end; end; j:=1; while aj=0 do j:=j+1; for i:= j to 100 do write
12、(ai) ;end.第二十张,PPT共八十六页,创作于2022年6月练习3 下图中把大正方形各边平均分成了5份,此时有55个正方形。如果把正方形各边平均分成n份,那么得到的正方形总数为多少?52+42+32+22+12=55n2+(n-1)2+(n-2)2+22+1Fn=Fn-1+n2var a,i,n:longint;begin read(n); a:=1; for i:=2 to n do a:=a+i*i; writeln(a);end.第二十一张,PPT共八十六页,创作于2022年6月Var 加入高精度运算 a:array1.25 of longint; i,j,k,x,n:longi
13、nt;begin readln(n); a25:=1;n=1时 for i:= 2 to n do begin x:=i*i; for j:= 25 downto 1 do begin aj:=aj+x mod 10; if aj=10 then begin aj:=aj-10 ; aj-1:=aj-1+1; end; x:=x div 10; end; end; j:=1; while aj=0 do j:=j+1; for i:= j to 25 do write(ai); end.第二十二张,PPT共八十六页,创作于2022年6月练习4 如图,由等圆组成的一组图中,第1个图由1个圆组成,
14、第2个图由7个圆组成,第3个图由19个圆组成,按照这样的规律排列下去,则第9个图形由_个圆组成。 217可得递推公式:Fn= Fn-1+6*(n1)var a,i,n:longint;begin read(n); a:=1; for i:=2 to n do a:=a+6*(i-1); writeln(a);end.第二十三张,PPT共八十六页,创作于2022年6月var 加入高精度运算 a:array1.50 of longint; i,j,k,x,n:longint;begin readln(n); a50:=1; for i:= 2 to n do begin x:=(i-1)*6; f
15、or j:= 50 downto 1 do begin x:=x+aj; aj:=x mod 10 ; x:=x div 10; end; end; j:=1; while aj=0 do j:=j+1; for i:= j to 50 do write(ai);end.第二十四张,PPT共八十六页,创作于2022年6月练习5 已知三角形ABC的面积为10,延长边BC到点D,使BC=CD,延长边CA到点E,使CA=AE,延长边AB到点F,使AB=BF,连结DE,EF,FD,得到三角形DEF,并记图中阴影部分面积为S1,此时我们称三角形ABC向外扩展了一次.求经过N次扩展后图中阴影部分的面积Sn
16、.Fn=7*Fn-1 ( Fn为第n次扩展后整个三角形的面积 )F0=10Sn=Fn-Fn-1第二十五张,PPT共八十六页,创作于2022年6月const max=100;var f1,f2,s:array1.max of longint; i,j,k,l,n:longint;begin readln(n); f1max:=0 ; f1max-1:=1; F0=10 for i:= 1 to n do begin f2:=f1; k:=0; 7 for j:= max downto 1 do begin k:=k+f1j*7; f1j:=k mod 10; k:=k div 10; end;
17、end; for i:= max downto 1 do 相减 begin if f1if2i then begin f1i:=f1i+10; f1i-1:=f1i-1-1; end; si:=f1i-f2i; end; j:=1; while sj=0 do j:=j+1; for i:= j to max do write(si) ; end.第二十六张,PPT共八十六页,创作于2022年6月Hanoi双塔问题 给定A、B、C三根足够长的细柱,在A柱上放有2n个中 间有孔的圆盘,共有n个不同的尺寸,每个尺寸都有两个相同的圆盘,注意这两个圆盘是不加区分的(下图为n=3的情形)。现要将这些圆盘
18、移到C柱上,在移动过程中可放在B柱上暂存。要求: (1)每次只能移动一个圆盘; (2)A、B、C三根细柱上的圆盘都要保持上小下大的顺序; 任务:设An为2n个圆盘完成上述任务所需的最少移动次数,对于输入的n,输出An。第二十七张,PPT共八十六页,创作于2022年6月 输入文件hanoi.in为一个正整数n,表示在A柱上放有2n个圆盘。 输出文件hanoi.out仅一行,包含一个正整数,为完成上述任务所需的最少移动次数An。 【样例1】hanoi.inhanoi.out12【样例2】hanoi.inhanoi.out26【限制】 对于50%的数据,1=n=25 对于100%的数据,1=n9 t
19、hen begin 处理进位 aj+1:=aj+1+1; aj:=aj mod 10; end; end; f:=false; for i:=62 downto 1 do begin if ai0 then f:=true; if f then write(ai); end; close(input); close(output);end.第三十张,PPT共八十六页,创作于2022年6月 在上面的一些例题中,递推过程中的某个状态只与前面的一个状态有关,递推关系并不复杂。如果在递推中的某个状态与前面的几个状态、甚至所有状态都有关,就不容易找出递推关系式,这就需要我们对实际问题进行分析与归纳,从中
20、找到突破口,总结出递推关系式。 第三十一张,PPT共八十六页,创作于2022年6月 意大利著名数学家斐波那契在研究兔子繁殖问题时,发现有这样一组数:1,1,2,3,5,8,13,其中从第三个数起,每一个数都等于它前面两上数的和。现以这组数中的各个数作为正方形的边长构造如下正方形: 再分别依次从左到右取2个、3个、4个、5个正方形拼成如下矩形并记为、若按此规律继续作矩形,则序号为的矩形周长是。 466 第三十二张,PPT共八十六页,创作于2022年6月【问题描述】 一只蜜蜂在上图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房M开始爬到蜂房N(MN),有多
21、少种爬行路线? 【输入格式】 输入M,N的值。(1=M,N0),求出铺法总数的递推公式。F(1)=1F(2)=2F(n)=F(n-2)+F(n-1) (n=3)第四十张,PPT共八十六页,创作于2022年6月 如果有n元钱,每天去购买下列三种商品之一:蔬菜要用1元钱,猪肉要用2元钱,鸡蛋要用元钱用An表示把这n元钱用完的所有可能的用法的总数如果第一天买蔬菜,则用去元钱,还剩n-1元钱, 这n-1元钱的用法有n-1种;如果第一天买猪肉,则用去元钱,还剩n-元钱, 这n-元钱的用法有n-2种; 如果第一天买鸡蛋,则用去元钱,还剩n-元钱, 这n-元钱的用法有n-2种; 所以,n=n-1+2n-2第
22、四十一张,PPT共八十六页,创作于2022年6月 有排成一行的个方格,用红、黄、蓝三色涂每个格子,每格涂一色,要求任何相邻的格不同色,且首尾两格也不同色。问有多少种涂法? 解:设共有n种涂法,易见1,2,3,且当时,将个格子依次编号后,格与格(n-1)不相邻。情形:格(n-1)涂色与格不同,此时格只有一色可涂,且前(n-1)格满足首尾两格不同色,故有n-1种涂色方法。情形:格(n-1)涂色与格相同,此时格(n-2)与格涂色必然不同,不然,格(n-1)与(n-2)相同,于是前(n-2)格有n-2种涂色法。因为格与格不同色,有两种涂色法,故共有n-2种涂色法。综上,可得nn-1n-2()按前n-1
23、格首尾关系讨论 第四十二张,PPT共八十六页,创作于2022年6月错位排列 五个人排成一列,重新站队时,各人都不站在原来的位置上,那么不同的站队方式共有( ) (A)60种 (B)44种 (C)36种 (D)24种 解:首先我们把人数推广到n个人,即n个人排成一列,重新站队时,各人都不站在原来的位置上。设满足这样的站队方式有An种,现在我们通过合理分步,恰当分类来找出递推关系: 第一步:第一个人不站在原来的第一个位置,有n-1种站法。 第二步:假设第一个人站在第2个位置,则第二个人的站法又可以分为两类:第一类,第二个人恰好站在第一个位置,则余下的 n-2个人有An-2种站队方式;第二类,第二个
24、人不站在第一个位置,则就是第二个人不站在第一个位置,第三个人不站在第三个位置,第四个人不站在第四个位置,第n个人不站在第n个位置,所以有An-1种站队方式。 由分步计数原理和分类计数原理,我们便得到了数列 的递推关系式: ,显然 ,再由递推关系有,第四十三张,PPT共八十六页,创作于2022年6月 在书架上放有编号为1 ,2 ,n的n本书。现将n本书全部取下然后再放回去,当放回去时要求每本书都不能放在原来的位置上。 例如:n = 3时: 原来位置为:1 2 3 放回去时只能为:3 1 2 或 2 3 1 这两种 问题:求当n = 5时满足以上条件的放法共有多少种?第四十四张,PPT共八十六页,
25、创作于2022年6月染色问题 用4种不同颜色涂四边形的4个顶点,要求每点染一种颜色,相邻的顶点染不同的颜色,则不同的染色方法有( )(A)84种(B)72种(C)48种(D)24种A第四十五张,PPT共八十六页,创作于2022年6月第四十六张,PPT共八十六页,创作于2022年6月Var i,j,k,m,n:longint; a:array1.10 of longint;function jc(k:integer):longint;求K! var i,j:longint; begin j:=1; for i:= 2 to k do j:=j*i; jc:=j; end;begin readln
26、(n,m);n是顶点数,m是颜色数 a3:=jc(m) div jc(m-3);初值 for i:= 4 to n do begin j:=1; for k:= 1 to i-1 do j:=j*(m-1); ai:=m*j-ai-1 ; 递推公式 end; writeln(an);end.a3:=m*(m-1)*(m-2)第四十七张,PPT共八十六页,创作于2022年6月如图,一个地区分为5个行政区域,现给地图着色,要求相邻区域不得使用同一颜色,现有四种颜色可供选择,则不同的着色方法共有 种。 第四十八张,PPT共八十六页,创作于2022年6月 图中2、3、4、5四个区域围成一个四边形,因此
27、可以把它们看成是一个四边形的4个顶点,而区域1就是这个四边形对角线的交点。 第一步,先涂区域1,有4种涂法。 第二步,由于区域1跟其余四个区域都相邻,因此涂1的颜色不能用来涂其余的四个区域,因此第二步相当于用3种颜色来涂一个四边形的四个顶点,不难得出 所以,由分步计数原理,得出共有 种涂法。 第四十九张,PPT共八十六页,创作于2022年6月 某城市在中心广场建造一个花圃,花圃分成6个部分(如图),现要栽种4种不同颜色的花,每部分栽种一种且相邻部分不能栽种同样颜色的花,不同的栽种方法共有 种。 120430=120第五十张,PPT共八十六页,创作于2022年6月传球问题 4个人进行篮球训练,互
28、相传球接球,要求每个人接球后马上传给别人,开始由甲发球,并作为第一次传球,第五次传球后,球又回到甲手中,问有多少种传球方式?60第五十一张,PPT共八十六页,创作于2022年6月第五十二张,PPT共八十六页,创作于2022年6月分析 :设第n次传球后,球又回到甲手中的传球方式有an种。可以想象前n-1次传球,如果每一次传球都任选其他三人中的一人进行接球,则每次传球都有3种可能,由乘法原理,共有 333=3 n-1 种传球方法。这些传球方式可以分为两类: 一类是第n-1次恰好传到甲手中,这有an-1种传法,它们不符合要求,因为这样第n次无法再把球传给甲; 另一类是第n-1次传球,球不在甲手中,第
29、n次持球人再将球传给甲,有an种传法。 根据加法原理,有an-1+an=3 n-1 。 由于甲是发球者,一次传球后球又回到甲手中的传球方式是不存在的,所以a1=0。 利用递推关系可以得到 a2=3-0=3, a3=33-3=6, a4=333-6=21, a5=3333-21=60。 这说明经过5次传球后,球仍回到甲手中的传球方法有60种。第五十三张,PPT共八十六页,创作于2022年6月var a:array1.100 of longint; n,m,i,j:longint;begin readln(n,m); a1:=0; j:=1; for i:= 2 to m do begin j:=
30、j*(n-1); 先求出(n-1)i-1 ai:=j-ai-1; end; writeln(am);end.第五十四张,PPT共八十六页,创作于2022年6月var 加入高精度运算 a:array1.100,1.100 of integer; s:array1.100 of integer; i,j,t,k,n,m:longint;begin readln(n,m); a1,100:=0 ; s100:=1; for i:= 2 to m do begin for j:= 100 downto 1 do sj:=sj*(n-1); for j:= 100 downto 1 do if sj9
31、then begin sj-1:=sj-1+sj div 10; sj:= sj mod 10; end; for j:= 100 downto 1 do ai,j:=sj-ai-1,j; for j:= 100 downto 1 do if ai,j0 then begin ai,j-1:=ai,j-1-1; ai,j:=ai,j+10; end; end; j:=1; while am,j=0 do j:=j+1; for i:= j to 100 do write(am,i);end.第五十五张,PPT共八十六页,创作于2022年6月凸多边形划分 在一个凸多边形中,通过若干条互不相交的对
32、角线,把这个凸多边形剖分成了若干个三角形。现在的任务是根据输入的凸多边形的边数,求不同剖分的方案数Cn。比如当n=5时,有如下5种不同的方案,所以C5=5。输入文件14.in:一个正整数,表示凸多边形的边数。(n=21)输出文件14.out:一个正整数,表示方案总数。第五十六张,PPT共八十六页,创作于2022年6月如图所示,我们以p1pn这条边为基准边,再找pk来构成三角形,则原凸n边形被剖解成了p1pkpn和两个凸多边形,其中一个是由p1,p2,pk构成的凸k边形,另一个是由pk,pk+1,pn构成的凸n-k+1边形,根据乘法原理,选择pk这个顶点的分解方案为 种。而k可以选2到n-1,所
33、以根据加法原理,得出总的方案数为 注意,就这个递推关系而言,临界值应为C2=1,而不是C3=1,否则递推关系就得不到正确解,这与原问题的实际情况可能不符(即两边形),其实这只是理解上的差异P1PnP2P3PkPn-1Pn-2第五十七张,PPT共八十六页,创作于2022年6月const max=21;var c:array2.max of longint; n,i,k:integer; total:longint;begin readln(n); c2:=1; for i:=3 to n do begin ci:=0; for k:=2 to i-1 do ci:=ci+ck*ci-k+1; e
34、nd; writeln(cn);end.第五十八张,PPT共八十六页,创作于2022年6月求路径总数下图是某居民小区道路图,小明每天由家(点)到学校(点),他只沿道路向上或向右行走,那么他最多有()天走不同线路?1015212836 454 1020 355684120 1655 1535 70126 210 330 495第五十九张,PPT共八十六页,创作于2022年6月var i,j,n,m:integer; a:array1.20,1.20 of longint;begin read(n,m); fillchar(a,sizeof(a),0); for i:=1 to n do aI,1
35、:=1; for j:=1 to m do a1,j:=1; for i:=2 to n do for j:=2 to m do aI,j:=aI,j-1+ai-1,j; writeln(an,m);end.要想到达坐标为(i,j)的顶点的话,必定要经过坐标为(i-1,j)的顶点或坐标为(i,j-1)的顶点,设a(I,j)表示从点A到顶点(I,j)的路径总条数,则a(I,j)=a(I,j-1)+a(i-1,j)输入:5 9输出:495第六十张,PPT共八十六页,创作于2022年6月街道路径 设有一个NM(1=N=50,1=M=50)的街道,规定行人从A(1,1)出发,在街道上只能向东或北行走。
36、 若在此街道中,设置一个矩形障碍区域(包括围住该区域的的街道)不让行人通行,如上图中用“”表示的部分。此矩形障碍区域用2对顶点坐标给出,如上图中的2对顶点坐标为(2,2),(8,4),此时从A出发到达B的路径有两条。 现给出N、M,同时再给出此街道中的矩形障碍区域的2对顶点坐标(x1,y1),(x2,y2),请求出此时所有从A出发到达B的路径的条数。 由于在街上只能向东或北方向行走,因此要想达到坐标为(i,j)的顶点的话,必定要经过坐标为(i-1,j)的顶点或坐标为(i,j-1)的顶点,假设从起始顶点到达坐标为(i,j)的顶点的路径总数为ai,j,则ai,j= ai-1,j +ai,j-1。因
37、此我们可以采用逐行递推的方法来求出从起始顶点到达任意一个顶点的路径总数。第六十一张,PPT共八十六页,创作于2022年6月var n,m,i,j,x1,x2,y1,y2:integer; a:array1.50,1.50 of longint; b:array1.50,1.50 of boolean;begin readln(n,m);行列要分清 readln(x1,y1,x2,y2); fillchar(a,sizeof(a),0) ; fillchar(b,sizeof(b),true); for i:=y1 to y2 do for j:=x1 to x2 do bi,j:=false;
38、 for i:=1 to m do begin if not(bi,1) then break ; ai,1:=1; end; for j:=1 to n do begin if not(b1,j) then break ; a1,j:=1; end; for i:=2 to m do for j:=2 to n do if bi,j then ai,j:=ai-1,j+ai,j-1; write(am,n);end.有可能障碍区域靠边如输入9 52 8 4应输出1第六十二张,PPT共八十六页,创作于2022年6月 Var加入高精度运算 n,m,i,j,x1,x2,y1,y2,k,g:inte
39、ger; a:array1.50,1.50,1.30 of longint; b:array1.50,1.50 of boolean;begin readln(n,m); readln(x1,y1,x2,y2); fillchar(a,sizeof(a),0); fillchar(b,sizeof(b),true); for i:=y1 to y2 do for j:=x1 to x2 do bi,j:=false; for i:=1 to m do begin if not(bi,1) then break; ai,1,1:=1; end; for j:=1 to n do begin if
40、 not(b1,j) then break; a1,j,1:=1; end; for i:=2 to m do for j:=2 to n do if bi,j then begin g:=0; for k:=1 to 30 do begin ai,j,k:=ai-1,j,k+ai,j-1,k+g; g:=ai,j,k div 10; ai,j,k:=ai,j,k mod 10; end; end; j:=30; for i:=30 downto 1 do if am,n,i=0 then j:=j-1; for i:=j downto 1 do write(am,n,i);end.第六十三张
41、,PPT共八十六页,创作于2022年6月过河卒 如图,A 点有一个过河卒,需要走到目标 B 点。卒行走规则:可以向下、或者向右。同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点。例如上图 C 点上的马可以控制 9 个点(图中的P1,P2 P8 和 C)。卒不能通过对方马的控制点。棋盘用坐标表示,A 点(0,0)、B 点(n,m)( n,m为不超过 20的整数),同样马的位置坐标是需要给出的(约定: CA,同时CB)。现在要求你计算出卒从 A 点能够到达 B 点的路径的条数。 输入文件5.in,只有一行,共4个正整数,前2个数表示B点的坐标
42、,后2个数表示对方马的坐标。 输出文件5.out,只有一行,一个整数(表示路径的条数)。 样例: 输入 6 6 3 2 输出 17分析:要到达棋盘上的一个点,只能从左边过来或是从上面下来,所以根据加法原理,到达某一点的路径数目,等于到达其相邻上、左两点的路径数目之和,因此我们可以使用逐行递推的方法来求出从起始顶点到终点的路径数目,如果有障碍,只要将到达该点的路径数目设置为即可。第六十四张,PPT共八十六页,创作于2022年6月const x1:array1.8of integer=(2,2,1,-1,-2,-2,-1,1); y1:array1.8of integer=(1,-1,-2,-2,
43、-1,1,2,2);var b:array0.20,0.20 of boolean; i,j,x,y,k,p,n,m:integer; a:array0.20,0.20 of integer;beginreadln(n,m,x,y); fillchar(b,sizeof(b),true); fillchar(a,sizeof(a),0);bx,y:=false;for i:=1 to 8 do if (x+x1i=0)and(x+x1i=0)and(y+y1i=0)and(x+x1i=0)and(y+y1i1) do j:=j-1; for i:=j downto 1 do write(an,
44、m,i); end.第六十七张,PPT共八十六页,创作于2022年6月传球游戏【问题描述】 上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师再次吹哨子时,传球停止,此时,拿着球没有传出去的那个同学就是败者,要给大家表演一个节目。 聪明的小蛮提出了一个有趣的问题:有多少种不同的传球方法可以使得从小蛮手里开始传的球,传了m次后,又回到小蛮手里。两种传球方法被视为不同的方法,当且仅当这两种方法中,接到球
45、的同学按接球顺序组成的序列是不同的。比如有3个同学1号、2号、3号,并假设小蛮为一号,球传了3次后回到小蛮手里的方式有 1- 2- 3- 1 和 1- 3- 2- 1 ,共2种。第六十八张,PPT共八十六页,创作于2022年6月【输入】 输入文件ball.in共一行,有两个用空格隔开的整数n,m(3=n=30,1=m=30)。【输出】 输出文件ball.out共一行,有一个整数,表示符合题意的方法数。【输入输出样例】 ball.in 3 ball.out 32【限制】 40%的数据满足:3=n=30,1=m=20 100%的数据满足:3=n=30,1=m=30第六十九张,PPT共八十六页,创作
46、于2022年6月分析: 设f(i,k)表示经过k次传球到编号为i的人手中的方案数。可以发现,传到i号同学的球只能来自于i的左边一个同学或者右边一个同学,这两个同学的编号分别是i-1、i+1,所以可以得到以下的递推公式: f(i,k)=f(i-1,k-1)+f(i+1,k-1) 当i=1或n时,需单独处理: 1. f(1,k)=f(2,k-1)+f(n,k-1) 2. f(n,k)=f(n-1,k-1)+f(1,k-1) 从1号同学开始传球,可确定初始条件:f(1,0)=1 可根据传球次数进行递推,结果在f(1,m)中。第七十张,PPT共八十六页,创作于2022年6月var i,j,k,n,m:
47、longint; f:array0.30,0.30 of longint;begin readln(n,m); fillchar(f,sizeof(f),0); f1,0:=1; for k:=1 to m do begin f1,k:=f2,k-1+fn,k-1; 当球在1号同学时 for i:= 2 to n-1 do fi,k:=fi-1,k-1+fi+1,k-1; fn,k:=fn-1,k-1+f1,k-1; 当球在n号同学时 end; write(f1,m);end.第七十一张,PPT共八十六页,创作于2022年6月传球问题 4个人进行篮球训练,互相传球接球,要求每个人接球后马上传给
48、别人,开始由甲发球,并作为第一次传球,第五次传球后,球又回到甲手中,问有多少种传球方式?第七十二张,PPT共八十六页,创作于2022年6月Var n,m,i,j,k,l,g:longint; a:array0.30,1.30,1.100 of longint;begin read(n,m); a0,1,1:=1; for i:=1 to m do begin for j:=1 to n do for k:=1 to n do if jk then begin g:=0; for l:=1 to 100 do begin g:=ai,j,l+ai-1,k,l+g; ai,j,l:=g mod 1
49、0 ; g:=g div 10; end; end; end;l:=100;while am,1,l=0 do l:=l-1;for i:=l downto 1 do write(am,1,i);end.第七十三张,PPT共八十六页,创作于2022年6月整数划分 把一个正整数N划分成一些正整数的和,例如:N =n1+n2+nk 且满足1=n1=n2=nk = N ,叫做N的一个划分。求不同的划分的数量。 当n=4时,划分数为4。 4=1+1+1+1; 4=1+1+2; 4=1+3; 4=2+2; 第七十四张,PPT共八十六页,创作于2022年6月设 表示把正整数a做分划、其中最大的一份恰好是b
50、的方案总数。设表示把正整数a做分划、其中最大的一份不大于b的方案总数。显然有:所以:当i=j then gi,j:=gi-j,j+gi,j-1 else gi,j:=gi,j-1; writeln( gn,n-1 );end.第七十七张,PPT共八十六页,创作于2022年6月倒推法 我们把由已知初始值为1,通过递推关系式n=g(Fn-1)求出其最终结果Fn的递推方式称为顺推法同理,把已知最终结果为Fn,通过递推关系式n-1=g(Fn),求出其初始值1的递推方式称之为倒推法。第七十八张,PPT共八十六页,创作于2022年6月 四个人做火柴游戏,每一局三个人赢,一个人输,输者要按赢者手中赢得火柴根
51、数赔偿,即赢者手中有多少根火柴,输者就赔他多少?4次之后,每人恰好输过一次而且手中都恰好有16根?求四人原有火柴数?把第一局输的人记为,把第二局输的人记为,把第三局输的人记为,把第四局输的人记为,用倒退法可知:开始第七十九张,PPT共八十六页,创作于2022年6月骑士游历 设有一个n*m的棋盘(2=n=50,2=m(2,3)-(4,4)。若不存 在路径,则输出no。第八十张,PPT共八十六页,创作于2022年6月算法分析:我们先将棋盘的横坐标规定为i,纵坐标规定为j,对于一个nm的棋盘,i的值从1到n,j的值从1到m。棋盘上的任意点都可以用坐标(i,j)表示。对于马的移动方法,我们用K来表示四种移动方向(1,2,3,4);而每种移动方法用偏移值来表示,并将这些偏移值分别保存在数组dx和dy中,如下表 :
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小区过年主任简短发言稿范文
- 物业小区临时用电管理制度
- 教育督导人员违反督导规定检讨书
- 教师法治教育不到位问题清单及整改措施
- 电车充电桩资产盘点与管理手册
- 财务月度季度结账流程与注意事项手册
- 初创企业创业补贴申请书
- 电气安装工艺与质量控制手册
- 物流解决方案设计与实施手册
- 生态环境治理工程施工与质量管控手册
- 2026年内蒙古自治区医师定期考核试题附答案
- 二升三语文暑假特色作业(2026版)
- (期末复习) 2025-2026学年人教版八年级数学下册期末考前预测卷
- 2027年高考化学复习必刷题-化学反应与能量(解答大题)
- 2026小红书有感运动IP方案
- 2026年执业药师《药事管理与法规》考试综合练习及完整答案详解(名师系列)
- 2026年档案修裱技术规范与破损档案抢救修复流程考核
- 《保障农民工工资支付条例》宣贯会
- 烫伤预防与护理实践指南(2025年版)
- 《2026年》医院行政岗位高频面试题包含详细解答
- 2026春外研版七年级下册英语期末试卷一(含听力音频答案)
评论
0/150
提交评论