大三狗重新复习算法之递推
马拦过河卒 C语言
特别经典的递
如
图,A 点有一个过河卒,需要走到目标 B
点.卒行走规则:可以向下、或者向右.同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点.例
如上图 C 点上的马可以控制 9 个点(图中的P1,P2 … P8 和 C).卒不能通过对方马的控制点.
棋盘用坐标表示,A 点(0,0)、B 点(n,m)(n,m 为不超过 20 的整数,并由键盘输入),同样马的位置坐标是需要给出的(约定: C<>A,同时C<>B).现在要求你计算出卒从 A 点能够到达 B 点的路径的条数.
输入格式
四个整数 分别表示B点的坐标(n,m)以及对方马的坐标(X,Y){不用判错}
输出格式
一个整数(路径的条数).
样例输入
6 6 3 2
样例输出
17
#include<iostream> #include<stdio.h> using namespace std; #define maxint 21 int path[maxint][maxint]; int f[maxint][maxint]; int x[8] = {-1,-2,1,2,-1,-2,1,2}; int y[8] = {2,1,2,1,-2,-1,-2,-1}; int main() {int n,m;int cx,cy; //马的坐标cin>>n>>m;cin>>cx>>cy;for(int i=0;i<=n;i++){for(int j=0;j<=m;j++){path[i][j] = 0;}}path[cx][cy] = 1;int tempx,tempy;for(int i=0;i<8;i++){tempx = cx+x[i];tempy = cy+y[i];if(tempx>=0&&tempx<=n&&tempy>=0&&tempy<=m){path[tempx][tempy] = 1;}}f[0][0] = 1;for(int i=0;i<=n;i++){for(int j=0;j<=m;j++){if(i>=1&&path[i-1][j]==0){f[i][j] = f[i][j]+f[i-1][j];}if(j>=1&&path[i][j-1]==0){f[i][j] =f[i][j]+f[i][j-1];}}}cout<<f[n][m]<<endl;}
蒜头君觉得白色的墙面好单调,他决定给房间的墙面涂上颜色。他买了 333 种颜料分别是红、黄、蓝,然后把房间的墙壁竖直地划分成 nnn 个部分,蒜头希望每个相邻的部分颜色不能相同。他想知道一共有多少种给房间上色的方案。
例如,当 n=5n = 5n=5 时,下面就是一种合法方案。
由于墙壁是一个环形,所以下面这个方案就是不合法的。
输入格式
一个整数 nnn,表示房间被划分成多少部分。(1≤n≤501 \leq n \leq 501≤n≤50)
输出格式
一个整数,表示给墙壁涂色的合法方案数。
样例输入
4
样例输出
18
#include<bits/stdc++.h> using namespace std; int f[1000]; void paintwall(int wallsize){f[1] = 3;f[2] = 6;f[3] = 6;for(int i=4;i<=wallsize;i++){f[i] = f[i-1]+2*f[i-2]; /*假设p[1]是黄 那么p[1]和p[n]有两种情况 p[1] == p[n] 那么不管他两是红还是蓝 都可以看成一个点 结果就是f[n-1] 如果p[1]!=p[n] 那么就有两种情况(p[1]是红p[n]是蓝 p[1]是蓝p[n]是红 那么这两点确定后 结果就是2*f[n-2])*/}cout<<f[wallsize]<<endl; }int main() {int wallsize;cin>>wallsize;paintwall(wallsize); }
转载于:https://www.cnblogs.com/guyahan/p/7774222.html
大三狗重新复习算法之递推相关推荐
- 湖科大 2022大三上 软件工程复习资料
前言 湖科大 2022大三上 软件工程复习资料 推荐参考 ffj笔记 主要内容来源于老师画的重点和ppt:由于ppt知识点不详细,部分内容参考了<软件设计师教程> 由于老师划重点不详细,笔 ...
- #大三狗的日常总结与反思03#
又到了"星期四总结大会"了,回望过去一周,计划依然未能全部完成,好吧,这是日常了,很尴尬~~ 废话少说,开始汇报:先送上上周的计划表.首先,鱼C貌似已经被我完全忽略了,主要原因是赖 ...
- 程序设计典型算法之递推法
程序设计典型算法之递推法 一时兴起,刚吃完晚饭,突然又想写点东西,可能太久没有写东西了吧! 问题:小猴吃桃问题.小猴在一天内摘了若干桃子,当天吃掉一半多一个:第二天吃掉剩下的一半桃子多一个:以后每天都 ...
- 本大三狗处博——为工作消得人憔悴
大家好,来csdn这么多天了,本嘤嘤怪终于决定写一遍博客,就当做是记录吧. 我今年大三,学校要求马上就要实习了,我学过C,JAVA,数据库,MATLAB,HTML,CSS,JS. 但是学到现在,我发现 ...
- 大三狗的日常总结与反思
现在是2017.10.12晚上6点35分,我在机房401,享受着崭新的电脑,舒适的空调带给我舒服的环境,但是另一方面我又有些担心和焦虑未来的道路如何抉择... ... 在上个暑假,我花着家里面给的一万 ...
- 算法学习——递推之猴子爬山
算法描述 一个猴子沿着一座山的n级台阶向上爬,猴子上山一步可跳1级或3级,试求上山的n级台阶有多少种不同的爬法 算法思路 利用递推的思想,猴子在第n级台阶上,它之前可能在第n-1级台阶上或者是在n-3 ...
- 基础算法 —— 递归/递推 —— 汉诺塔问题(Hanoi)
[问题提出] Hanoi塔由n个大小不同的圆盘和三根木柱a,b,c组成.开始时,这n个圆盘由大到小依次套在a柱上,如图所示. 要求把a柱上n个圆盘按下述规则移到c柱上: (1)一次只能移一个圆盘: ...
- 单片机ADC采样算法----加权递推平均滤波法
加权递推平均滤波法是对递推平均滤波法的改进,即不同时刻的数据加以不同的权.通常是,越接近现时刻的数据,权取得越大.给予新采样值的权系数越大,则灵敏度越高,但信号平滑度越低. 下面直接看C代码的实现 d ...
- java穷举密码_穷举算法和递推算法(Java)
穷举算法 概念: 最简单算法,依赖计算机的强大计算能力穷尽每一种可能的情况.穷举算法效率不高,但是适合一些没有明显规律可循的场合. 思想: 在使用穷举算法时,需要明确问题答案的范围,这样才可能在指定范 ...
- 蓝桥杯 算法提高 递推求值(矩阵快速幂)详解
传送门 问题描述 已知递推公式: F(n, 1)=F(n-1, 2) + 2F(n-3, 1) + 5, F(n, 2)=F(n-1, 1) + 3F(n-3, 1) + 2F(n-3, 2) + 3 ...
最新文章
- 溢出漏洞利用小结(基础)
- win10系统Mysql5.7服务启动报:“1053错误:服务没有及时响应启动或控制请求“
- P4556,jzoj3397-[GDOI2014模拟]雨天的尾巴【树链剖分,线段树】
- opencv图像分割2-GMM
- 大屏监控系统实战(7)-后端整合MybatisPlus并暴露服务
- 学习笔记之04-第一个OC程序解析
- 去除面部黑色素小妙招_去除暗黄皮肤的小妙招 7招让你白皙动人
- Spark 提交执行源码学习
- Vue+Element-Ui项目中使用qrcodejs2将链接生成二维码
- javaSE-String,StringBuffer和StringBuilder
- Mysql登录和修改初始化密码
- Microsoft Office for Mac最新版本安装教程,亲测可用
- 最新特效移动文字代码大全
- ethercat的linuxcnc解析器-关于lcec_conf和lcec.so
- 算法:食物链(并查集)
- 日复一日对着电脑何谈健康?想要改善如何做
- 中国也曾有过贵族:春秋战国是其黄金时期
- 极光IM + 极光推送,集成中遇到的问题
- C++的throw抛出异常机制
- 华为设备命令与用户级别
热门文章
- 【渝粤教育】国家开放大学2018年春季 0281-21T色装概论 参考试题
- [渝粤教育] 中国地质大学 管理信息系统 复习题
- 手把手教你强化学习 (六) 强化学习中的无模型预测
- 计算机视觉实战(七)图像金字塔与轮廓检测
- 最邻近规则分类 KNN (K-Nearest Neighbor)算法及python实现
- [USACO12FEB]附近的牛Nearby Cows
- zuul压力测试与调优
- Redis 发布/订阅模式
- 【转】格雷斯特(Glest)Glest(开源RTS游戏)编译备忘
- 怪不得知乎急着招前端开发.