动态规划
此后无良辰
路漫漫其修远兮~
展开
-
一道题解释树形dp【此后无良辰】
题面描述 基本思路 首先一看题 死死的认为树不就是图吗,最短路算法套上去不就得了吗 然后写了一个spfa和djstla int spfa(int x,int N){//SPAF queue<int> q; for(int i=0;i<N;++i){ dis[i]=inf; vis[i]=0; } q.push(x); vis[x]=1;dis[x]=0; while(!q.empty()){原创 2020-10-07 15:42:19 · 262 阅读 · 2 评论 -
一道题解释树形dp
题面描述 基本思路 树形dp 选取和不选取 分别用f和g存储 f表示选取o结点最大得到的答案 g表示不选取o结点最大得到的答案 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * };原创 2020-08-05 17:17:26 · 119 阅读 · 0 评论 -
一道题解释反向dp【此后无良辰】
题目描述 基本思路 正向dp: 从【0】【0】处往【n-1】【m-1】减一处dp 因为只能向下,向右只有两种状态转移可以很容易的写出状态转移方程 但考虑下列情况 绿色路径「从出发点到当前点的路径和」为 1,「从出发点到当前点所需的最小初始值」为 3。 蓝色路径「从出发点到当前点的路径和」为 -1,「从出发点到当前点所需的最小初始值」为 2。 我们希望「从出发点到当前点的路径和」尽可能大,而「从出发点到当前点所需的最小初始值」尽可能小。这两条路径各有优劣。 在上图中,我们知道应该选取绿色路径,因为蓝色路径原创 2020-07-12 16:27:02 · 437 阅读 · 0 评论