
记忆搜索
逐梦起航-带梦飞翔
为了更加长远的快乐!
展开
-
bzoj1055 [HAOI2008]玩具取名
bzoj1055 [HAOI2008]玩具取名区间动态+记忆化搜索dp时做如下2件事:1、如果状态已经处理过,则不必重复处理;2、判断状态能否成立:枚举能变换成该字符的所有可能,其中要用到某区间能否变成k这个字符,直接调用dp函数来计算,这就是记忆化搜索的精髓。原创 2017-12-23 13:38:58 · 219 阅读 · 0 评论 -
最短路算法集合
一、Dijkstra算法:仅限用于无边权为负数的图,更不能正确处理负环的情况。把所有点分成两个集合,S集合是存已经确定下来、不会再更改(准确一点的话是“不能再更改”)的点,T集合是待确定的点集。从T集合中的点中,选择一个到st最近的点x。让这个点为其它点更新:如果y点到st的距离大于 x点到st的距离 + x->y这条边的距离,则改进y到st的值。然后x加入S集合。更透彻地理解,这种算法每次...原创 2018-02-13 11:36:09 · 490 阅读 · 0 评论 -
洛谷2953 [USACO09OPEN]牛的数字游戏Cow Digit Game(博弈)
题目贝茜和约翰在玩一个数字游戏.贝茜需要你帮助她。游戏一共进行了G(1≤G≤100)场。第i场游戏开始于一个正整数Ni(l≤Ni≤1,000,000)。游戏规则是这样的:双方轮流操作,将当前的数字减去一个数,这个数可以是当前数字的最大数码,也可以是最小的非0数码.比如当前的数是3014,操作者可以减去1变成3013,也可以减去4变成3010。若干次操作之后,这个数字会变成0.这时候不能再操作的一方...原创 2018-07-14 09:56:27 · 464 阅读 · 0 评论 -
洛谷2243 电路维修(双端队列bfs)
题目洛谷2243 电路维修题解双端队列bfs建一张图,每个顶点为图中的点,每个点可以往4个方向走。如果需要改变则边权为1,否则边权为0。bfs时建立一个双端队列q。如果走边权1,则把该点塞到q尾;否则放在q头。这么做的目的是想维护bfs的“两段性”和“单调性”,只适用于边权+1\0的bfs。...原创 2018-09-15 23:06:46 · 681 阅读 · 0 评论 -
洛谷3257 [JLOI2014]天天酷跑(DP)(记忆化搜索)
题目每次往上跳或往下掉或持平……(具体看题目吧),使路径上的权值和最大。题解记忆化搜索设f[i][j][t]表示从出发点到(x,y)这个位置(不含这个位置,即减掉ma[x][y])还可以跳t次的最大权值和。转移方程,其中w表示这一路上的点权和。下面说说前辈绕的弯路,注意一下输入,第一行是底~再注意一点,回到底后可以重置可跳次数~考虑细致一点,这题还是不难的~代码...原创 2018-10-11 22:16:33 · 307 阅读 · 0 评论