1、王小二切饼

题目链接(点击)

Problem Description

王小二自夸刀工不错,有人放一张大的煎饼在砧板上,问他:“饼不许离开砧板,切n(1<=n<=100)刀最多能分成多少块?”

Input

输入切的刀数n。

Output

输出为切n刀最多切的饼的块数。

Sample Input

100

Sample Output

5051

思路:

求切n刀 饼最多的块的数目?

如图:

当分别切0、1刀最多分别1、2块,当切第三刀以及往后的时候:

然后可以有下面两种切法:

(1) 、与第一次的线不相交:

(2) 、与第一次的线相交:

当与之前的线尽可能多的相交时,可以得到最多的块的数目。

所以第三次以及后面的切法:(每次都与之前的线相交)

总结上面的快数目分别是:

1、2、4、7、11(分别对应0~4)

规律就很明显了:

f(i)=f(i-1)+i

AC代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAX=3e2;
int a[MAX+5];
int main()
{a[0]=1;for(int i=1;i<=105;i++){a[i]=a[i-1]+i;}int n;scanf("%d",&n);printf("%d\n",a[n]);return 0;
}

2、马拦过河卒

Problem Description

棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。棋盘用坐标表示,A点(0,0)、B点(n,m)(n,m为不超过15的整数),同样马的位置坐标是需要给出的。现在要求你计算出卒从A点能够到达B点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步。

Input

一行四个数据,用空格分隔,分别表示B点的坐标和马的坐标。

Output

一个数据,表示所有的路径条数。

Sample Input

6 6 3 3

Sample Output

6

思路:

把这道题放在了递推里面,但我感觉是比较典型的dfs题目,因为之前做过一个迷宫的题目:传送门(解析)。

打出x1*y1(根据题目中n点而定)的数组 ,然后再把马可以到达的位置用不同的数字标记。然后从左上到右下dfs,每次到达终点时cnt++,表示有一条新的可以到达终点的路径。

打出的表格如下(示例为题目样例输入)

AC代码:

#include<bits/stdc++.h>
using namespace std;
int dir[2][2]={0,1,1,0};
int cnt;
int a[25][25];
int x1,x2,y11,y22;
void dfs(int x,int y)
{if(x==x1&&y==y11){cnt++;return;}for(int i=0;i<2;i++){x+=dir[i][0];  //借助方向数组dir改变x和y的值 实现走下一步y+=dir[i][1];if((a[x][y]==1)&&x>=0&&x<=x1&&y>=0&&y<=y11){a[x][y]=0;                  //x和y必须严格控制在矩阵内部dfs(x,y);a[x][y]=1;}x-=dir[i][0];  //实现返回y-=dir[i][1];}
}
int main()
{scanf("%d%d%d%d",&x1,&y11,&x2,&y22);for(int i=0;i<=x1;i++){for(int j=0;j<=y11;j++){a[i][j]=1;}}a[x2][y22]=0;a[x2-2][y22-1]=0;a[x2-2][y22+1]=0;a[x2-1][y22-2]=0;a[x2-1][y22+2]=0;a[x2+1][y22-2]=0;a[x2+1][y22-2]=0;a[x2+1][y22+2]=0;a[x2+2][y22-1]=0;a[x2+2][y22+1]=0;dfs(0,0);printf("%d\n",cnt);return 0;
}

王小二切饼、马拦过河卒相关推荐

  1. 马拦过河卒(NOIP2002)

    马拦过河卒(NOIP2002) (2010-05-14 15:57:22) 标签: 递归 杂谈 分类: 递归与回溯 Description : 如图,A点有一个过河卒,需要走到目标B点.卒行走的规则: ...

  2. 马拦过河卒(三种做法)

    马拦过河卒 Time Limit: 3000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 棋盘上A点有一个过河卒,需 ...

  3. 马拦过河卒(C++)

    棋盘上 A点有一个过河卒,需要走到目标 B 点.卒行走的规则:可以向下.或者向右.同时在棋盘上 C 点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点.因此称之为"马拦过 ...

  4. 马栏过河卒动态规划算法

    题目 棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下.或者向右.同时在棋盘上的某一点有一个对方的马(如C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点,如图中的C点和P1 ...

  5. 递推 SDUT 王小二切饼

    王小二切饼 Description 王小二自夸刀工不错,有人放一张大的煎饼在砧板上,问他:"饼不许离开砧板,切n(1<=n<=100)刀最多能分成多少块?" Input ...

  6. 王小二切饼 C 2050

    王小二切饼 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 王小二自夸刀工不错,有人放一张大的煎饼在砧板上,问他:&qu ...

  7. 王小二切饼(递推)SDUT

    王小二切饼 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 王小二自夸刀工不错,有人放 ...

  8. 递推递归练习 B - 王小二切饼

    Description 王小二自夸刀工不错,有人放一张大的煎饼在砧板上,问他:"饼不许离开砧板,切n(1<=n<=100)刀最多能分成多少块?" Input 输入切的刀 ...

  9. 王小二切饼 2050 ACM实验题

    Description 王小二自夸刀工不错,有人放一张大的煎饼在砧板上,问他:"饼不许离开砧板,切n(1<=n<=100)刀最多能分成多少块?" Input 输入切的刀 ...

最新文章

  1. java设计模式:Singleton模式
  2. 卡写入速度_看清商家买相机送SD卡的套路,一文教你掌握存储卡选购秘诀
  3. Angulary应用依赖里的platform-browser
  4. 神奇却又随处可见的斐波那契曲线...
  5. 谁说Dota2赢了人类的AI太水?连比尔·盖茨都啧啧称赞了
  6. 1.输入复制到输出,并将其中连续多个空格用一个空格代替
  7. vb源代码框中不能用滚轮的解决办法
  8. java常用算法手册 赵志云_Java常用算法手册
  9. win7锁定桌面计算机图标,Win7锁定桌面图标的详细步骤(图文)
  10. macOS配置Android SDK 环境变量
  11. 计算机按姓氏笔画顺序排序规则,【姓氏文化】按姓氏笔画排序的原则
  12. javascript将数字转换成大写
  13. StringBuilder的介绍(转载!)
  14. #define 喵 int_【吃鸡大作战第三季】第12集 告白小雪喵
  15. mysqldump逻辑备份
  16. 读书随记——《傲慢与偏见》(4)
  17. 条件概率与事件的相互独立性
  18. 【Linux】linux进程--进程控制:进程创建、进程终止、进程等待、进程程序替换
  19. 计算机应用研究所912,中国科学院计算技术研究所硕士生导师章隆兵
  20. 全新2009高校BBS上充满温馨的100个调情小笑话

热门文章

  1. go pdf支持中文
  2. 基于asp.net的幼儿园宣传网站管理系统#毕业设计#课程设计
  3. aba会导致问题_ABA问题的本质及其解决办法
  4. unity中Time.delaTime简单解释
  5. 鸿蒙为什么翻译成harmony,鸿蒙的英文名为什么取的是Harmony
  6. idea 如何快速固定complier版本
  7. 女人最难挡男人的3种诱惑
  8. 基于物联网区块链技术构建智慧城市价值生态
  9. 计算机音乐名词解释,音乐专业名词解释
  10. 托管与非托管数据转换方法之C#设计笔记(十三)