记忆化搜索
HelloWorld10086
追随大神的脚步
展开
-
UVA 10891 Game of Sum(记忆化搜索+博弈)
题目大意: 有一个长度为n的整数序列,A和B轮流取数字,A先取,每次只能从左端或者右端取任意数量的个数,但是不能两端都取。所有的数都被取走后游戏结束,让后统计每个人取走的数之和,作为各自得分。两个人采取的策略都是让自己的分数尽量高,且两个人都足够聪明,就A得分减去B得分的结果。 解析: dp[i][j]表示原序列的第i~j个元素组成的子序列,在双方都采取最优的情况下,先手得分的最大值。原创 2015-02-04 16:40:20 · 853 阅读 · 0 评论 -
UVA - 10604 Chemical Reaction(6维dp+记忆化搜索)
题意: 有t组测试数据。每组测试数据开始有一个整数n,表示有n种试剂(最多6种)。接下来的n*n行,列出来了当前试剂和另外一种试剂混合产生的化合物以及放出的热量。 然后一个整数m,代表有m个试管(最多10个)。 接下来一行有m个数,表示m个试管里分别装了哪几种试剂。 问怎么组合能产生最少的热量。测试样例之间用/分开,结果用.表示 解析: 定义了六维的状态,dp[a][b][原创 2015-02-22 21:20:36 · 706 阅读 · 0 评论 -
UVA - 10118 Free Candies(dfs+记忆化搜索)
思路参考了这篇博客:http://www.cnblogs.com/kedebug/archive/2013/04/07/3006493.html题意: 有4堆糖果,每堆有n(最多40)个,有一个篮子,最多装5个糖果,我们每次只能从某一堆糖果里拿出一个糖果, 如果篮子里有两个相同的糖果,那么就可以把这两个(一对)糖果放进自己的口袋里,问最多能拿走多少对糖果。糖果种类最多20种. 思路:原创 2015-02-22 21:05:51 · 616 阅读 · 0 评论 -
UVA 10913 Walking on a Grid(记忆化搜索)
题意: 有一个大小有N(最多75)的方格,要你从(1,1)走到(n,n)。 有如下规则:你只有三个方向,左、右、下。不能走出方格。一个方格只能走一次。你要保证你的路径上的格子的和最大。你最多只能走k(最多为5)个负权值的格子,从起点到终点。如果可达输出最大的和,如果不可达输出”impossible”。 解析: 这题比较困难真的不好想。 这里用到了一个4维dp。dp[x][y][c原创 2015-02-22 21:34:26 · 549 阅读 · 0 评论 -
UVA - 607 Scheduling Lectures(贪心+记忆化搜索)
题意: 有n个主题。每堂课的时间是L。每个主题各要求t1,t2,…tn(1<=ti<=L)。对于每个主题,你要决定要哪堂课教。并且有如下的规则: 1.每个主题必须完整地包含在一堂课里。不能分成两部分教。 2.主题之间的顺序不能调换,即主题i必须在主题i+1之前教。 同时,如果在每堂课的最后如果能留有10分钟以内的时候,那么学生的不满意程序是最小的。不满意程度的计算如下所示:原创 2015-02-22 21:12:53 · 594 阅读 · 0 评论 -
UVA - 10626 Buying Coke(记忆化搜索)
题意: 有1, 5, 10三种硬币,分别有n1, n5, n10个,用来买c罐可乐。 每次只能买一罐,并且机器会自动按照用最少的硬币来组合最多的钱来找零。 问最少投入多少硬币,才能买到c罐可乐。(口袋里面的钱一定够买c可乐) 思路: 可以先分成有找零的和没找零的: 1.8个1分的 2.3个1分的和1个5分的 3.2个5分的找回2个1分的 4.一个10分的找原创 2015-02-22 20:59:11 · 646 阅读 · 0 评论 -
UVA 11008 Antimatter Ray Clearcutting(状态压缩+记忆化搜索)
题意: n个坐标上面分别有n棵树,每发射一次枪,可以把一条直线上面的树都消灭掉。问要消灭到m棵树,最少需要几枪。 解析: 这个题目由于树的数目很少,我们可以把树的状态压缩成一个整数,并依此来进行状态转移。dp[st]表示当前这个状态下面至少要开多少枪。 dp[st] = min(dp[st], dps(cur-cnt, new_st) + 1); 根据这个公式,进行状态转移。 A原创 2015-02-22 21:42:43 · 646 阅读 · 0 评论