题目大意:有一个n*m的矩阵,每个格子一个高度,第一行可以放蓄水站,可以向四周比这格高度小的格子送水。问可不可以让第n行都有水,若可以输出最少建几个蓄水站,否则输出最少有几个格子没有水 题解:对于每个格子处理出它可以到的最左端和最右段,因为如果有解,可覆盖的区间连续,所以记忆化搜索。最后线段覆盖就好 ...
分类:
其他好文 时间:
2018-05-11 23:37:08
阅读次数:
160
本人小白但是最近学习了动态规划的记忆化搜索算法,就是经典的那道数字三角形的题,题目中最后说的只是要显示最大路径的值(就是求和),没说要求走过的点的坐标,我想顺便输出坐标,有没有什么高效的算法?我目前想出来一种(效率可能很低),就是用一开始记录到底的值的数组d来求,遍历每一行的d,求其的最大值然后记录 ...
分类:
编程语言 时间:
2018-05-06 20:05:07
阅读次数:
221
震惊!记忆化搜索忘记返回map值调了半小时! 边(u,v)的经过次数是:能到u的牛数\ v到n的方案数。正反两次连边,dfs两次即可 cpp include include include using namespace std; const int N=5005,M=50005; int n,m, ...
分类:
其他好文 时间:
2018-05-06 17:04:39
阅读次数:
155
题意: 有4堆糖,每堆有n个,每次从某一堆的堆顶拿一个放进篮子里,如果篮子里有2个颜色相同的糖果,那么就可以放进袋子里。 当篮子里有5个糖果并且没有相同颜色的糖果时,这个时候就不能再拿了。 问最多可以拿多少对颜色相同的糖果。 思路: 记忆化搜索。 设dp[x][y][z][w]表示第一堆拿走了x个, ...
分类:
其他好文 时间:
2018-05-06 00:23:58
阅读次数:
196
对这个奇形怪状的图tarjan,然后重新连边把图变成DAG,然后记忆化搜索即可 cpp include include using namespace std; const int N=100005; int n,a[N],h[N],cnt,dfn[N],low[N],tot,s[N],top,bl ...
分类:
其他好文 时间:
2018-05-05 15:31:32
阅读次数:
157
https://vjudge.net/problem/UVA-11762 给出一个整数n,每次随机挑选一个小于等于n的素数,如果是n的因子,n变为n/x ,否则不变,问n变为1的期望挑选次数。 f[i]=1/(m1+m2)*(SUM{ f[i] } + SUM{ f[i/x] }) +1,化简后记忆 ...
分类:
其他好文 时间:
2018-05-03 13:27:55
阅读次数:
172
题意: 给出一个矩阵,找出这个矩阵中严格最长下降序列的长度,可以从上下左右四个方向下降。 思路: 记忆化搜索一遍即可。 代码: ...
分类:
其他好文 时间:
2018-05-02 02:27:44
阅读次数:
123
"题目链接" 数位DP。sb了。。 前导0是有影响的,影响第一位的选择,所以要记。再记录上限,然后在没有限制时记忆化。 ...
题目链接 "bzoj3106: [cqoi2013]棋盘游戏" 题解 n = 20 显然当A不能一步吃掉B时,A必输 那么就是stepA stepB A想步数多,B想步数少 对抗搜索 可以证明B一定能在n 4步以内获胜 记忆化一下 代码 c++ / bzoj 3106 / include inclu ...
分类:
其他好文 时间:
2018-04-30 11:50:47
阅读次数:
154
题目描述 Description 在现实生活中,我们经常遇到硬币找零的问题,例如,在发工资时,财务人员就需要计算最少的找零硬币数,以便他们能从银行拿回最少的硬币数,并保证能用这些硬币发工资。 我们应该注意到,人民币的硬币系统是100,50,20,10,5,2,1,0.5,0.2,0.1,0.05,0 ...
分类:
其他好文 时间:
2018-04-27 02:28:48
阅读次数:
161