2025年动态规划-常见做法:填表法

动态规划-常见做法:填表法引入 填表法 是 DP 最常见的做法 以未知的量为基础 通过已知的量来刷新当前的未知量 简介 这是 DP 最基础的做法 通常 我们大多题目都可以用这种方法实现 思路 大致思路 例题 杨辉三角 Description 杨辉三角是二项式系数在三角形中的一种几何排列

大家好,我是讯享网,很高兴认识大家。

引入

填表法,是DP最常见的做法。
以未知的量为基础,通过已知的量来刷新当前的未知量。

简介

这是DP最基础的做法。通常,我们大多题目都可以用这种方法实现。

思路

大致思路

在这里插入图片描述
讯享网

例题

杨辉三角

 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 

讯享网

请求出杨辉三角的第 n 行,第 m 项的数字是什么。

Input
第一行输入两个整数 n,m代表行数和列数。(1≤n,m≤50)
Output
输出一个整数,代表杨辉三角的第 n 行,第 m项的数字。

Sample Input 1
6 3
Sample Output 1
10

讲解

杨辉三角本质上和我们讲的填表法很像(做法就是经典的填表法)。

1. 整理题目的图

2.杨辉三角的求法

讯享网求这个出杨辉三角的坐标为(n,m)的数字是什么,应该找它上两个的数。 这就是填表法的标志,我们程序就可以用填表法来写。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1AyNzE4NzU2OTQx,size_16,color_FFFFFF,t_70) 

例题代码

#include<bits/stdc++.h> using namespace std; int DP[1010][1010]; int n,m; int main(){ 
    DP[0][0]=1; cin>>n>>m; for(int i=1;i<=n;i++){ 
    for(int j=1;j<=m;j++){ 
    DP[i][j]=DP[i-1][j]+DP[i-1][j-1]; } } cout<<DP[n][m]; return 0; } 

推荐刷题

小讯
上一篇 2025-02-16 08:28
下一篇 2025-04-11 17:14

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/126276.html