马拦过河卒 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

大三狗重新复习算法之递推相关推荐

  1. 湖科大 2022大三上 软件工程复习资料

    前言 湖科大 2022大三上 软件工程复习资料 推荐参考 ffj笔记 主要内容来源于老师画的重点和ppt:由于ppt知识点不详细,部分内容参考了<软件设计师教程> 由于老师划重点不详细,笔 ...

  2. #大三狗的日常总结与反思03#

    又到了"星期四总结大会"了,回望过去一周,计划依然未能全部完成,好吧,这是日常了,很尴尬~~ 废话少说,开始汇报:先送上上周的计划表.首先,鱼C貌似已经被我完全忽略了,主要原因是赖 ...

  3. 程序设计典型算法之递推法

    程序设计典型算法之递推法 一时兴起,刚吃完晚饭,突然又想写点东西,可能太久没有写东西了吧! 问题:小猴吃桃问题.小猴在一天内摘了若干桃子,当天吃掉一半多一个:第二天吃掉剩下的一半桃子多一个:以后每天都 ...

  4. 本大三狗处博——为工作消得人憔悴

    大家好,来csdn这么多天了,本嘤嘤怪终于决定写一遍博客,就当做是记录吧. 我今年大三,学校要求马上就要实习了,我学过C,JAVA,数据库,MATLAB,HTML,CSS,JS. 但是学到现在,我发现 ...

  5. 大三狗的日常总结与反思

    现在是2017.10.12晚上6点35分,我在机房401,享受着崭新的电脑,舒适的空调带给我舒服的环境,但是另一方面我又有些担心和焦虑未来的道路如何抉择... ... 在上个暑假,我花着家里面给的一万 ...

  6. 算法学习——递推之猴子爬山

    算法描述 一个猴子沿着一座山的n级台阶向上爬,猴子上山一步可跳1级或3级,试求上山的n级台阶有多少种不同的爬法 算法思路 利用递推的思想,猴子在第n级台阶上,它之前可能在第n-1级台阶上或者是在n-3 ...

  7. 基础算法 —— 递归/递推 —— 汉诺塔问题(Hanoi)

    [问题提出] Hanoi塔由n个大小不同的圆盘和三根木柱a,b,c组成.开始时,这n个圆盘由大到小依次套在a柱上,如图所示. 要求把a柱上n个圆盘按下述规则移到c柱上:  (1)一次只能移一个圆盘:  ...

  8. 单片机ADC采样算法----加权递推平均滤波法

    加权递推平均滤波法是对递推平均滤波法的改进,即不同时刻的数据加以不同的权.通常是,越接近现时刻的数据,权取得越大.给予新采样值的权系数越大,则灵敏度越高,但信号平滑度越低. 下面直接看C代码的实现 d ...

  9. java穷举密码_穷举算法和递推算法(Java)

    穷举算法 概念: 最简单算法,依赖计算机的强大计算能力穷尽每一种可能的情况.穷举算法效率不高,但是适合一些没有明显规律可循的场合. 思想: 在使用穷举算法时,需要明确问题答案的范围,这样才可能在指定范 ...

  10. 蓝桥杯 算法提高 递推求值(矩阵快速幂)详解

    传送门 问题描述 已知递推公式: 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 ...

最新文章

  1. 溢出漏洞利用小结(基础)
  2. win10系统Mysql5.7服务启动报:“1053错误:服务没有及时响应启动或控制请求“
  3. P4556,jzoj3397-[GDOI2014模拟]雨天的尾巴【树链剖分,线段树】
  4. opencv图像分割2-GMM
  5. 大屏监控系统实战(7)-后端整合MybatisPlus并暴露服务
  6. 学习笔记之04-第一个OC程序解析
  7. 去除面部黑色素小妙招_去除暗黄皮肤的小妙招 7招让你白皙动人
  8. Spark 提交执行源码学习
  9. Vue+Element-Ui项目中使用qrcodejs2将链接生成二维码
  10. javaSE-String,StringBuffer和StringBuilder
  11. Mysql登录和修改初始化密码
  12. Microsoft Office for Mac最新版本安装教程,亲测可用
  13. 最新特效移动文字代码大全
  14. ethercat的linuxcnc解析器-关于lcec_conf和lcec.so
  15. 算法:食物链(并查集)
  16. 日复一日对着电脑何谈健康?想要改善如何做
  17. 中国也曾有过贵族:春秋战国是其黄金时期
  18. 极光IM + 极光推送,集成中遇到的问题
  19. C++的throw抛出异常机制
  20. 华为设备命令与用户级别

热门文章

  1. 【渝粤教育】国家开放大学2018年春季 0281-21T色装概论 参考试题
  2. [渝粤教育] 中国地质大学 管理信息系统 复习题
  3. 手把手教你强化学习 (六) 强化学习中的无模型预测
  4. 计算机视觉实战(七)图像金字塔与轮廓检测
  5. 最邻近规则分类 KNN (K-Nearest Neighbor)算法及python实现
  6. [USACO12FEB]附近的牛Nearby Cows
  7. zuul压力测试与调优
  8. Redis 发布/订阅模式
  9. 【转】格雷斯特(Glest)Glest(开源RTS游戏)编译备忘
  10. 怪不得知乎急着招前端开发.