记忆化搜索
big up
这个作者很懒,什么都没留下…
展开
-
uva10913
题目大意: 题目大意:给出n,k,然后给出一个n*n的图,从(1,1)通过向下,左和右三个方向,走到(n,n)点,途中不可以走相同的位置,并且路过的位置为负数的个数<= k, 找出一条路使得这条路上的值之和最大。不能到达输出 impossible思路: 给出思维数组dp[i][j][m][n] i,j为点的左边,m为负数的个数,n为走的方向。 进行dfs 记忆化搜索。代码:#include原创 2016-03-05 12:57:33 · 202 阅读 · 0 评论 -
uva11008
题目大意: 有n棵树,需要砍掉m棵数,可以用一个扫描光朝一个方向射去,那么这个方向直线上的所有树都会被砍掉,问需要最少几个这种光。思路: 位运算 状态压缩 记忆化搜索 要判断三棵树是否在同一斜率上。代码:#include <iostream>using namespace std;#include <stdio.h>#include <cstring>#define N (1 << 1原创 2016-03-05 13:49:22 · 233 阅读 · 0 评论 -
uva11008 附
感觉这个人写得很不错#include <stdio.h>#include <string.h>#define INF 1000000000#define MAXN 20#define MAXS 1<<18int n,m,c;int x[MAXN],y[MAXN];int s[MAXN][MAXN];int f[MAXS];int dp(int ss){ int count转载 2016-03-05 13:53:13 · 273 阅读 · 0 评论 -
uva10285
题目大意: 找出最长的严格递减序列。思路: DAG中不固定起点的最长路径,进行记忆化搜索。代码:#include <iostream>using namespace std;#include <stdio.h>#include <cstring>char s[100];int grid[105][105];int dp[105][105];int r,c;//int dir[4]原创 2016-02-26 19:33:20 · 966 阅读 · 0 评论 -
uva437
题目大意: 有几种不同的长方体,每个长方体有无数个,求可以叠起来的最大高度。要求:接触的两个面,下面的面的长宽要分别大于上面的长宽,相等也不可以。思路: 分别把一个长方体的六种状态存起来,然后求最大上升子序列就可以了。代码:#include <iostream>using namespace std;#include <stdio.h>#include <cstring>#include原创 2016-02-26 20:23:48 · 372 阅读 · 0 评论 -
uva10051
题目大意: 给出正方体六个面的颜色,有条件限制要使得正方体可以叠得 最高。 条件限制: 上面的要比下面的轻(依据输入的正方体的循序,重量递增) 上面的底面的颜色要和下面的顶部的颜色一样。 叠得尽可能的高思路: 分成六种情况,枚举底面和顶部的可能性。 代码:#include <iostream>using namespace std;#include <stdio.h>#inclu原创 2016-02-28 18:18:03 · 291 阅读 · 0 评论 -
uva10651
题目大意: 类似于跳棋,求最后剩下几个。思路: 位运算+记忆化搜索 状态压缩代码:#include <iostream>using namespace std;#include <stdio.h>#include <cstring>const int MAXN = 4100;int vis[MAXN],_min;char s[15];bool check(int k,int i)原创 2016-02-28 18:58:01 · 256 阅读 · 0 评论 -
uva10626(记忆化搜索)
题目大意: 一瓶可乐需要花8元,自动贩售机只收1元,5元,10元。每次插入的钱只能买一瓶。 给出n瓶可乐,请问最少插入几次钱可以买到所需要数量的可乐。思路: 一共有以下几种情况: 8个1元 插入8次 3个1元 一个5元 插入4次 3个1元 一个10元 插入4次 找5元 1个10元 插入1次 找2*1元 2个原创 2016-03-03 12:52:19 · 345 阅读 · 0 评论 -
uva10118
题目大意: 有4堆糖果,每堆有n(最多40)个,有一个篮子,最多装5个糖果,我们每次只能从某一堆糖果里拿出一个糖果,如果篮子里有两个相同的糖果,那么就可以把这两个(一对)糖果放进自己的口袋里,问最多能拿走多少对糖果。糖果种类最多20种. 思路: 记忆化搜索 用一个h数组来记录在此之前是否有一个单独的糖果i,如果有h数组中的此位置就变成0,如果没有就为1。然后不断的搜索。知道篮子中有5个糖果或者原创 2016-03-03 13:09:21 · 618 阅读 · 0 评论