信息奥赛一本通的递推练习

  • 递推与动态规划
    • 1313:位数问题
    • 1314:过河卒
    • 1194:移动路线
    • 1196:踩方格

递推与动态规划

递推解决的问题中满足最优化原理的也是属于动态规划范畴

1313:位数问题

在所有的N(<1000)位数中,有多少个数中有偶数个数字3?由于结果可能很大,你只需要输出这个答案对12345取余的值。
f[i][0]表示前i位中含偶数个3(含0个)的数的数量
f[i][1]表示前i位中含奇数个3(含0个)的数的数量
每增加一位数字, f[i][0]=f[i-1][0]*9+f[i-1][1] ,f[i][1]=(f[i-1][1]*9+f[i-1][0])

int f[1005][2];
int main(){int i,n;cin>>n;if(n==1)f[1][0]=9;else f[1][0]=8;f[1][1]=1;for(i=2;i<=n;i++){f[i][0]=(f[i-1][0]*9%12345+f[i-1][1])%12345;f[i][1]=(f[i-1][1]*9%12345+f[i-1][0])%12345;}cout<<f[n][0];return 0;
}

1314:过河卒

f[i][j]表示走到i,j这个点的路径条数,只能从上方和左边走到这一点,因此
递推式或者动态规划转移方程式:f[i][j]=f[i-1][j]+f[i][j-1];
为了处理方便,n、m等都增加1,相当于在棋盘外面多套了一圈儿,用增量数组来处理马造成的障碍点

long long a[25][25],f[25][25];
int main(){int n,m,cx,cy,x,y,i,j;int dx[]={-2,-1,1,2,2,1,-1,-2},dy[]={1,2,2,1,-1,-2,-2,-1};cin>>n>>m>>cx>>cy;n++,m++,cx++,cy++;a[cx][cy]=1;for(i=0;i<8;i++){x=cx+dx[i];y=cy+dy[i];if(x>0&&x<=n&&y>0&&y<=m)a[x][y]=1;}f[0][1]=1;for(i=1;i<=n;i++)for(j=1;j<=m;j++)if(a[i][j]==0)f[i][j]=f[i-1][j]+f[i][j-1];cout<<f[n][m];return 0;
}

1194:移动路线

X桌子上有一个m行n列的方格矩阵,将每个方格用坐标表示,行坐标从下到上依次递增,列坐标从左至右依次递增,左下角方格的坐标为(1,1),则右上角方格的坐标为(m,n)。
蚂蚁只能向上或向右移动。这只蚂蚁在左下角的方格中,蚂蚁从左下角的方格中移动到右上角的方格中,每步移动一个方格。蚂蚁始终在方格矩阵内移动,请计算出不同的移动路线的数目。

int f[25][25];
int main(){int n,m;cin>>n>>m;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)if(i==1||j==1)f[i][j]=1;else f[i][j]=f[i][j-1]+f[i-1][j];//当前移动路线的数目=左边和下边的路线和cout<<f[n][m];return 0;
}

1196:踩方格

有一个方格矩阵,矩阵边界在无穷远处。我们做如下假设:
a、每走一步时,只能从当前方格移动一格,走到某个相邻的方格上;
b、走过的格子立即塌陷无法再走第二次;
c、只能向北、东、西三个方向走;
请问:如果允许在方格矩阵上走n步,共有多少种不同的方案。2种走法只要有一步不一样,即被认为是不同的方案。

上图为走一二三步的情况
f[1]=l[1]+r[1]+u[1]
f[2]=

信息奥赛一本通的递推练习相关推荐

  1. 【算法•日更•第十二期】信息奥赛一本通1585:【例 1】Amount of Degrees题解

    废话不多说,直接上题: 1585: [例 1]Amount of Degrees 时间限制: 1000 ms         内存限制: 524288 KB 提交数: 130     通过数: 68 ...

  2. 信息奥赛一本通 三角形最佳路径问题 (1288) 题解

    信息奥赛一本通 三角形最佳路径问题 (1288) 题解 时间限制: 1000 ms 内存限制: 65536 KB 题目描述 如下所示的由正整数数字构成的三角形: 7 3 8 8 1 0 2 7 4 4 ...

  3. 2038:最大数位置(题目来源于信息奥赛一本通官网)

    2038:[例5.5]最大数位置 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 4876     通过数: 3175 [题目描述] 输入n 个整数,存放在数组a[ ...

  4. HOJ 系统常用功能介绍 部署快速入门 c++ python java编程语言在线自动评测 信息奥赛一本通 USACO GESP 洛谷 蓝桥 CSP NOIP题库

    技术支持微 makytony 服务器配置需求 腾讯云 2H4G 5M 60GB 轻量应用服务器  承载大约 200~400人使用,经过压力测试,评测并发速度可满足130人左右的在线比赛. 系统镜像选 ...

  5. 【算法•日更•第十四期】信息奥赛一本通1592:【例 1】国王题解

    废话不多说,直接上题: 1592:[例 1]国王 时间限制: 500 ms         内存限制: 65536 KB 提交数: 290     通过数: 111 [题目描述] 原题来自:SGU 2 ...

  6. 信息奥赛一本通1486: CH 6202 黑暗城堡 最短路径生成树计数

    1486:黑暗城堡 [题目描述] 知道黑暗城堡有 N 个房间,M 条可以制造的双向通道,以及每条通道的长度. 城堡是树形的并且满足下面的条件: 设 Di为如果所有的通道都被修建,第 i 号房间与第 1 ...

  7. 信息奥赛一本通(1325:【例7.4】 循环比赛日程表)

    1325:[例7.4] 循环比赛日程表 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 6257     通过数: 3483 [题目描述] 设有N个选手进行循环比赛 ...

  8. 信息奥赛一本通(1231:最小新整数)

    1231:最小新整数 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 5198     通过数: 2886 [题目描述] 给定一个十进制正整数n(0<n< ...

  9. 信息奥赛一本通(1180:分数线划定)——插入排序

    1180:分数线划定 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 15750     通过数: 7408 [题目描述] 世博会志愿者的选拔工作正在 A 市如火如 ...

最新文章

  1. 怎么将html字符串转换成标签并展示,将字符串转为html标签-续
  2. 计算机视觉招聘_香港理工大学人工智能设计实验室科研招聘
  3. boost::intrusive::auto_unlink_hook用法的测试程序
  4. Wiki1017(乘积最大)
  5. 分享一个关于Java调用百度、高德API、ArcGIS地图获取逆地理的代码
  6. P2473-[SCOI2008]奖励关【数学期望,状压dp】
  7. Linux C++ 实现线程池
  8. 深度残差收缩网络:(六)代码实现
  9. windows下编写dll
  10. [mark] some free templates sites
  11. cassandra学习笔记三
  12. iPhone4S安装Linux系统,别失望太早 iPhone 4S其实就是iPhone 5
  13. Java内存五大区_一:jvm的五大内存区(内存结构)
  14. 二十一、Oracle学习笔记:编写函数和触发器
  15. 网络:bit、Byte、bps、Bps、pps、Gbps的单位详细说明及换算。
  16. Mybatis的xml实用的一些技巧
  17. 3.3V的稳压管,结果电压变成了2.5V
  18. 申请清华大学计算机类的理由,青年人选择清华的七个理由
  19. java将英文字符(无论大小写)转化为小写
  20. kubernetes-1.23.6版本部署

热门文章

  1. 受邀参加了一场只有副总裁、CTO参加的技术会议!
  2. activeMQ,spring的jmstemplate简单例子
  3. JAVA 简单的抽奖程序
  4. Google Chrome调试js代码
  5. Hadoop框架:DataNode工作机制详解
  6. h5 video全屏播放
  7. 手机端公告文本回滚(简单的jq代码)
  8. 使用 Vue.js 和 Chart.js 制作绚丽多彩的图表
  9. 1159: 零起点学算法66——反话连篇
  10. 如何处理ESXi Hang机