引入
填表法,是DP最常见的做法。
以未知的量为基础,通过已知的量来刷新当前的未知量。
简介
这是DP最基础的做法。通常,我们大多题目都可以用这种方法实现。
思路
大致思路
例题
杨辉三角
Description
杨辉三角是二项式系数在三角形中的一种几何排列。它的每个数等于它上方两数之和,每行数字左右对称,由 1 开始逐渐变大。
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)的数字是什么,应该找它上两个的数。
这就是填表法的标志,我们程序就可以用填表法来写。

领悟到填表法的精髓了吧?
相信聪明的你,一定能够自己写代码了呢!
例题代码
#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;
}