数字三角形模型
seez
njfu
展开
-
数字三角形模型总结
数字三角形模型是线性dp问题中一个重要的分支,主要用来处理二维的线性dp问题二维的dp问题就可以很好的解决一些dfs的连通块问题所带来的tle一般二维的dp问题都可以采用数字三角形模型进行分析,但是数字三角形模型可能和其他问题一起杂糅出现,产生了多维的dp数字三角形模型只能处理左上角到右下角的递推,(只往右走,下走)如果存在“回头路”的话,需要退化成数字三角形模型,或者是记忆化搜索数字三角形898. 数字三角形(dp)_qq12323qweeqwe的博客-CSDN博客注意点.原创 2022-01-16 18:19:09 · 382 阅读 · 0 评论 -
275. 传纸条
和方格取数的分析一样#include <iostream>#include <algorithm>using namespace std;const int N=55;int dp[2*N][N][N];int a[N][N];int main(){ int m,n; cin>>m>>n; //注意和方格取数不同的点在于是一个矩形不是正方形 for(int i=1;i<=m;i++) ...原创 2022-01-05 22:37:54 · 914 阅读 · 0 评论 -
1027.方格取数
刚开始写的是走两次,取两次路径的和,但是这样子不是最优解两次局部最优解没有考虑全局,会导致得不到正确的全局最优解最优解是两次同时走,取两条路径和的最大值1.O(N^4)解法运用动态规划,两次同时走,枚举第一次走的坐标(i1,j1),和第二次走的坐标(i2,j2)枚举的是第一步走到(i1,j1),第二部走到(i2,j2)时所取得的路径和的最大值通过状态转移,我们第一步走的路径和可以通过从上面走过来dp[i1-1][j1][..][..] 这里i2,j2是任意的从左边...原创 2022-01-05 22:11:50 · 421 阅读 · 0 评论 -
1015. 摘花生
#include <iostream>#include <algorithm>using namespace std;const int N=105;int a[N][N];int dp[N][N];int main(){ int t; cin>>t; while(t--) { int r,c; cin>>r>>c; for(int i=1;...原创 2022-01-04 11:50:36 · 497 阅读 · 0 评论 -
898. 数字三角形(dp)
898. 数字三角形 - AcWing题库#include <iostream>#include <algorithm>#include <cstring>using namespace std;const int N=505;const int INF=0x3f3f3f3f;int res=-INF;int dp[N][N];int a[N][N];int main(){ int n; cin>>n; ...原创 2022-01-04 11:01:07 · 327 阅读 · 0 评论 -
1018. 最低通行费
由于格子只有N个,那么(2n-1)可以不管他由于要求最小费用1,贪心的想,就是不走回头路分析图如下#include <iostream>#include <algorithm>#include <cstring>using namespace std;const int N = 105;const int INF = 0x3f3f3f3f;int dp[N][N];int a[N][N];int main(){ mem...原创 2021-12-30 19:47:37 · 328 阅读 · 0 评论