Dynamic Programming 动态规划
文章平均质量分 66
Dynamic Programming 动态规划
daq0411
这个作者很懒,什么都没留下…
展开
-
I love exam(背包,动态规划)
先放代码,一会补#include<iostream>#include<string>#include<map>#include<vector>#include<cstring>#include<algorithm>using namespace std;map<string,int>km;struct infor{ int val; int time;};vector<infor>cou原创 2021-07-27 12:00:48 · 298 阅读 · 2 评论 -
UVA1169 Robotruck(DP + 单调队列)
UVA1169 Robotruck(DP + 单调队列)思路很简单,并且要求捡垃圾的顺序是按照垃圾的编号从小到大进行收集,所以也降低了难度,我们很容易想到用一个双重循环的区间DP来做,可惜提交之后发现超时了,在这里我们用到的是滑动窗口单调队列的做法进行优化。我们设动态数组dp[i]为收集前 i 个垃圾所需要的的曼哈顿距离,(之后我们用距离来代表曼哈顿距离)所以我们的动态转移方程是:dp[i] = min(dp[i], dp[j] + 从原点到第 j+1 号垃圾的距离 + 从第 j+1 号垃圾到第 i原创 2021-03-17 11:04:51 · 142 阅读 · 0 评论 -
UVA10859 放置街灯 Placing Lampposts(树状DP)
UVA10859 放置街灯 Placing Lampposts(树状DP)这道题有两种解决方法,因为原图保证无重边无环无自环, 所以原图一定是一颗树(或森林).,都是树状DP,但是实现的过程大同小异,先说第一种吧:一:1.在这道题中有两个因素在影响着转移,一个是放置灯的数量,一个是如果放的灯的数量相同的情况下被两盏灯同时照亮的边的条数,但是这两个条件有个优先级,就是灯的个数大于被边同时被两盏灯照亮的边,那么我们是不是可以这样想,如果多了一个灯变量值+1000,而如果是灯照亮了一条边就+1,那么我原创 2021-03-16 11:04:45 · 218 阅读 · 0 评论 -
Dijkstra最短路计数
Graph 图论Dijkstra最短路计数我们最常用的dijkstra是来算单源最短路径,也就是最短路径的长度,如果我们要计算最短路的条数呢?我们只需要在dijkstra算法上稍加更改即可。例如我们a->b->c的路径长度是x,a->d->c的路径长度也是x,所以这两条路径到达c点的距离相等,我们可以很直观的直到到达c的最短路的条数是2,如果还有一条道路c->e,那么我们也很容易得知到达e的最短路径条数也是2这是一个简单的例子,我们可以很直观的看出,通过这个例子我们可原创 2021-01-22 21:04:24 · 2661 阅读 · 2 评论 -
编辑距离
String 字符串1、编辑距离编辑距离,又称Levensgtein距离(莱文斯坦距离也叫做Edit Distance),是指两个字符串之间,有一个转成另一个字符串所需要的最小编辑操作的次数,编辑操作次数包括替换一个字符,添加一个字符,删除一个字符,如果它们的距离越大,说明它们越是不同。...原创 2021-01-20 10:04:18 · 226 阅读 · 0 评论