随笔分类 - 记忆化搜索
摘要:每个火车头能拉走连续的k个货箱,三个火车头可以拉的最大货箱重量是多少。 dp[i][j]表示i个火车头在前j个火车头里可以拉的最大货箱重量。 dp+记忆化搜索。 #include <cstdio> #include <cstring> #include <cmath> #include <algor
阅读全文
摘要:给定一些字符集,将字符集中的字符从字符串中删除或增加需要一些代价,问构造一个回文串的最小代价。 因为删除与增加本质是相同的,所以只保存代价最小的然后进行字符的删除。 考虑区间转移,然后存下所有区间的最小状态即可。 #include <cstdio> #include <cstring> #inclu
阅读全文
摘要:水题,照着给的式子记忆化搜索即可。 #include <iostream> #include <cstdio> #include <cstring> #include <cmath> using namespace std; typedef long long ll; int i,j,k; ll d
阅读全文
摘要:给一个数,两个人轮流把这个切成k段并把k段加和给下一个人切,谁先无法切谁就失败。 dfs+博弈 具体看代码注释 #include <bits/stdc++.h> #define pb push_back #define mp make_pair #define x first #define y s
阅读全文
摘要:有三种操作,第一种把+v,第二种-v,第三种*-1。现在先手的会让最后的值最大,后手的让最后的值最小。 所有操作后的值在区间[-100,100]内,问最后的值是多少。 因为所有的值只有200种可能性,所有每个操作之后最多可能也只有200种值。 那么记忆化搜索把每个操作之后的状态存下来就避免了暴力搜索
阅读全文
摘要:一只老鼠从(1,1)出发每次最远只能水平或竖直移动不超过k个曼哈顿距离,且能移动到下一个点的条件是下一个点的权值大于现在这个点。 记忆化搜索。搜索状态是(行,列),直接四个方向上的k种移动方式枚举然后取max保存就好。 #include <bits/stdc++.h> #define pb push
阅读全文

浙公网安备 33010602011771号