自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不慌不忙、不急不躁

https://github.com/JeraKrs

  • 博客(72)
  • 收藏
  • 关注

原创 uva 11008 - Antimatter Ray Clearcutting(状态dp)

题目链接:11008 - Antimatter Ray Clearcutting题目大意:有一篇森林,给出n棵树的坐标,现在有一种反物质光线,可以清楚直线上的树木,然后给出m,代表这片森林要除掉m棵树,问最少使用几次光线。解题思路:状态压缩,看了别人的题解才知道要用位运算去做,平时有碰到记忆化搜索压缩状态都用数组可以解决的,今天写了位运算版,感觉对位运算有了进一步的了解,下

2013-09-30 23:44:31 1800

原创 uva 10604 - Chemical Reaction(状态压缩dp)

题目链接:10604 - Chemical Reaction题目大意:给出n和m,有n种化学药剂,型号由1~n,然后给出n * n行代表相应的两种化学药剂反应后的生成物以及释放的热量,然后给出m个试管,每种试管中有对应的药剂,要求将m种药剂反应合成一种,不要求反应后药剂的种类,要求反应所散发的热量最少。注意:i和j反应可能与j和i反应不同,反应可能吸热。解题思路

2013-09-30 23:30:47 1820

原创 uva 10599 - Robots(II)(LIS)

题目链接:10599 - Robots(II)题目大意:有一个row * col的矩阵,然后给出若干个坐标,代表该坐标上有垃圾,现在有一个机器人,支持向下以及向右的移动,每次移动到一个位置,可以将该位置上的垃圾清理掉,要求求出从(1,1)的位置到(row, col)最多能收多少垃圾,以及有多少条路线可以收最多的垃圾,并输出路径。解题思路:因为机器人只支持向右和向下,也就是说

2013-09-29 14:56:44 1628

原创 uva 662 - Fast Food(dp)

题目链接:662 - Fast Food题目大意:给出n,m,在一条街上有n家餐馆,然后给出n家餐馆的坐标,然在可以在餐馆的基础上建设仓库m个,为了使得每家餐馆都能最快的调用食物,要求每家餐馆到距离自己最近的仓库的距离之和最小,并输出仓库所在餐馆的序号以及所服务的餐馆范围(到该仓库取货物的餐馆)解题思路:dp[k][i]表示前i个餐馆用k个仓库服务的最优解,dis[i][j

2013-09-28 11:16:11 2473

原创 uva 10817 - Headmaster's Headache(01背包)

题目链接:10817 - Headmaster's Headache题目大意:某个学校要师资力量不够,要招收新的老师,第一行给出s、m、n,现在在任的老师有m个,然后给出m行表示每个老师的信息,分别是该老师的工资,以及可教授的课程(个数不一定),然后在n行表示可招收的老师信息,同样是工资和课程,s表示该学校开售的课程,问,最少花多少钱可以使得该学校开设的s个课程每个课程有两个老师任教。

2013-09-27 21:14:02 1836

原创 uva 10626 - Buying Coke(记忆化搜索)

题目链接:10626 - Buying Coke题目大意:给出要买可乐的数量, 以及1元,5元和10元硬币的数量, 每瓶可乐8元,每次照钱会按照最少硬币的方式找回, 问如何投币可使得投入的硬币数最少, 输出最少硬币值。解题思路:记忆化搜索, 因为可乐每购买一次便要找会硬币,所以对与每个状态考虑的情况比并不是很多。注意:1、每够买一次可乐便会找回一次硬币,所以不用

2013-09-26 23:04:17 3767

原创 uva 10118 - Free Candies(记忆化搜索)

题目大意:10118 - Free Candies题目大意:有4堆糖果, 每堆糖果有n颗糖果,然后给出每颗糖果的类型1~20,然后只有取走当前堆的前面一颗糖果后才可以取后面的糖果, 然后小伙伴有一个篮子,篮子可以装5个糖果,如果篮子中的糖果存在相同类型的两个糖果,便可以将这两颗糖果算成一对放进腰包,问,小伙伴按什么样的方式取糖果可以取到最多的糖果。解题思路:记忆化搜索,开一

2013-09-26 22:51:45 1486

原创 uva 11081 - Strings(LCS)

题目链接:11081 - Strings题目大意:给出三个字符串,从分别从第一个字符串和第二个字符串中挑选子串a,b,用a和b组成第三个字符串的子串c,问可组成的子串有多少种。#include #include const int N = 70;const int tmp = 10007;int dp[N][N][N], dp1[N][N][N], dp2[N

2013-09-25 23:58:17 1892

原创 uva 10029 - Edit Step Ladders(dp + 二分)

题目链接:10029 - Edit Step Ladders题目大意:给出若干个按照字典序排列的字符串,每两个字符串之间可以存在一个梯度,也可不存在,所谓梯度就是指前一个字符串同过改变、删除或填加一个字符,是转化后的字符串等于后面一个字符串,问,在所给出的若干个字符串中最多能连续通过梯度连接多少个字符串,输出最大值。解题思路:类似与LIS,可是用o(n^2)的算法却超时,然

2013-09-25 22:01:40 1632

原创 求解函数声明的默认值问题?

在做学校大实验的时候帮同学调试代码,发现了这样的一个问题,虽然有解决方案,但实在不是很清楚这样写为什么不行,下面是我写的一个类似的代码,求大神解答!就是用define定义的一个宏,然后在函数声明的时候作为函数参数的默认值,会报错,但是直接在定义上就不会有错。有误代码:#include #define N 100int solve(int a = N);int mai

2013-09-25 09:32:55 1921 2

原创 uva 10564 - Paths through the Hourglass(dp)

题目链接:10564 - Paths through the Hourglass题目大意:给出一个沙漏形状的2(n - 1)行矩阵,并给出一个总全值和每个坐标的权值,每个位置可以走向下一行与它相邻的两个或一个位置(参见题目中的图),请找出有多少调路径上的权值和等于给定的总权值,并输出字典序最小的一条路径的起始位置 和方案。解题思路:就是数字三角的进化版, 只是本题需要记录每

2013-09-25 09:10:40 1855

原创 uva 10280 - Old Wine Into New Bottles(完全背包)

题目链接:10280 - Old Wine Into New Bottles题目大意:现在有L升酒,以及n种酒瓶,现在给出每种酒瓶的最小容量和最大容量,每种酒瓶可以使用无限多次,问,怎样装酒,可以使得剩下的酒(即未能装进酒瓶中的酒)最少,输出最小值。解题思路:刚开始直接背包,结果超时了,看了别人题解才知道要剪很大的枝,这里推荐一篇题解写的很仔细。http://blog.

2013-09-25 08:59:20 2154

原创 uva 11258 - String Partition(dp)

题目链接: 11258 - String Partition题目大意:给出一个字符串,由0~9组成,现在可以将字符串切割成若干段,每一段便可代表一个数值,但是这个数值不能大于int的最大上限,问,如何切割可以使得这若干个数的和最大。解题思路:一开始想用区间dp做,但是小伙伴告诉我可以用递推的方法,就去找了一下代码,确实非常简单,dp[i]表示第i位数以前的最优解,由

2013-09-23 23:53:55 2407

原创 uva 10913 - Walking on a Grid(记忆化)

题目链接:10913 - Walking on a Grid题目大意:给出n,k,然后给出一个n*n的图,从(1,1)通过向下,左和右三个方向,走到(n,n)点,途中不可以走相同的位置,并且路过的位置为负数的个数impossible解题思路:记忆化搜索,用四维数组去记录最优解,vis二维数组表示当前访问状态,dp[x][y][i][j]表示位置x,y的地方,当路过的负数个数

2013-09-23 23:42:29 2092 1

原创 uva 10201 - Adventures in Moving - Part IV(dp)

题目链接:10201 - Adventures in Moving - Part IV题目大意:有n个测试数据组, 对于每个测试组,最先给出一个距离lenth, 然后给出若干个加油站的位置以及加油站每升油的价钱。然后有量油桶容量为200升的卡车,出距离为0的位置开始移动向lenth,每升油可以使的卡车走一个单位距离,问,卡车到达lenth的时候,并且油箱中仍有100升油,最少花费多少钱

2013-09-23 23:32:58 1643

原创 uva 607 - Scheduling Lectures(贪心+记忆化搜索)

题目链接: 607 - Scheduling Lectures题目大意:给出课题数n,以及每堂课的时间l,以及常数c,然后是n个课题所需要的时间。问题1:最少需要几节课时可以讲所有的课题讲完,并且课题的顺序不能调换,一个课题不能分在两节课讲。问题2:在用的课时最少的情况下,如何让同学们的不满意度最低,不满意度的计算是根据课时的剩余时间t计算的,解题思路:问题

2013-09-22 16:32:33 1440

原创 uva 10304 - Optimal Binary Search Tree(区间dp)

题目链接:10304 - Optimal Binary Search Tree题目大意:给出n个词语的出现频率(从小到达排列),要根据这些词语的出现频率建一个类似于哈夫曼编码的最优树, 不过不同的是这棵数的每个节点都应该优值,并且对于每个节点来说,左边所有的节点上的值(词语的频率)都要小于该节点, 右边的则都要大于。然后根据节点的层数*节点值, 输出最小的编码值。解题思路:

2013-09-22 16:15:00 1691

原创 求解printf函数?

求大神解释一下下面的代码为什么答案不是1 2,而是1 0。#include int ans = 0;int a() { ans = 1; return ans++;}int b() { return ans;}int main () { printf("%d %d\n", a(), b());// printf("%d!\n", ans); retur

2013-09-21 10:38:54 1120 4

原创 uva 10163 - Storage Keepers(01背包)

题目链接:10163 - Storage Keepers题目大意:给出m为仓库的数量, 给出n为有守夜人的数量, 然后给出n个数值,为对应守夜人应付的酬劳,每个守夜人的能力与他需要的酬劳是相等的,并且守夜人可以同时负责多个仓库的安全,不过这样子安全值就变为val[i]/k(val[i]表示第i个守夜人的能力值,k表示他负责的仓库数量, /为取整),先在要的出方案,使得所有仓库中安全值最

2013-09-21 10:26:24 2382

原创 uva 10635 - Prince and Princess(LCS)

题目连接:10635 - Prince and Princess题目大意:给出n, m, k,求两个长度分别为m + 1 和 k + 1且由1~n * n组成的序列的最长公共子序列长的。解题思路:按一般的o(n^2)的算法超时了,所以上网查了下LCS装换成LIS的算法o(nlogn)。算法仅仅是将其中的一个序列重新标号1~m,然后按最长公共子序列的方法去做。

2013-09-19 23:32:52 2037

原创 uva 10911 - Forming Quiz Teams(记忆化搜索)

题目链接:10911 - Forming Quiz Teams题目大意:给出2 * n个选手的坐标, 要求将所有的选手分成n组, 每组两个人, 所有组的两个人之间的距离之和要最小, 输出最小值。解题思路:网络赛的时候写过类似的题目, 只不过是选4个点做正方形,所以思路很明确,每次选取任意两个点配对,递归搜索,并记录下来。然后我不是用未运算来记录点的状态,而开了个数组,因为位

2013-09-19 22:21:59 1629

原创 uva 10617 - Again Palindrome(dp)

题目链接:10617 - Again Palindrome题目大意:给出一个字符串,可以通过删除一个字符的操作,问,能形成多少种回文串?(也就是问该字符串中有多少的子串为回文串,子串可以不连续)解题思路:以前貌似做过类似的题目,所以思路很清晰,dp[i][j]代表从第i个字符到第j个字符有多少个回文子串。1、i == j时,dp[i][j] = 1。2、str[i]

2013-09-19 10:39:01 1489

原创 uva 590 - Always on the run(01背包)

题目连接:590 - Always on the run题目大意:给出n和k, 然后再给出n * ( n - 1) 行数字,第i个(n - 1)行带表城市i与另外的(n - 1) 个城市之间航班。对于每一行来说已经确定的是哪两个城市之间的航班了,第一个数字代表航班价格的波动周期(天),后面day[i][j]个数代表对应日子的航班价格,现在求出k次航班后从城市1移动到城市n的花费最小

2013-09-18 22:28:07 1373

原创 uva 825 - Walking on the Safe Side(dp)

题目链接:825 - Walking on the Safe Side题目大意:给出n,m,现在给出n行数据, 每行有k(k为不定值)个数字, 第一个数字代表行数, 后面k - 1个数代表当前行的这个位置不可走, 问有多少路径可以从(1,1)到(n,m),只能向下或向右。解题思路:dp[i][j] = dip[i - 1][j] + dp[i][j - 1], 很简单的dp

2013-09-18 16:46:47 1705

原创 uva 10401 Injured Queen Problem(dp)

题目链接:10401 - Injured Queen Problem题目大意:给出一个字符串,要求在n * n(n为字符串的长度)的棋盘上摆放n个受伤的皇后,受伤的皇后只能攻击到同一列和它周围8个格子,如果字符串中第i个字符为'?'表示第i + 1个皇后可以摆放在任意行,如果为1 ~ F表示第i+1个皇后必须摆放在第str[i]行, 问,有多少种不同的摆法?解题思路:一开始

2013-09-18 14:58:16 1732

原创 uva 10651 - Pebble Solitaire(记忆化搜索)

题目链接:10651 - Pebble Solitaire题目大意:给出一个12格的棋盘,‘o'代表摆放棋子,’-‘代表没有棋子, 当满足’-oo'时, 最右边的棋子可以跳到最左边的位子,而中间的棋子则被消除,‘o--', 问对于一个给定了的棋盘,通过上述消除棋子的方法最后最少绳几个棋子在棋盘上。解题思路:递归搜索 + 记忆化, 并且记忆化的值为所有测试数据公用的,也就是

2013-09-17 21:39:44 1217

原创 uva 10306 - e-Coins(完全背包)

题目链接:10306 - e-Coins

2013-09-17 21:03:06 1710

原创 uva 10453 - Make Palindrome(dp)

题目链接:10453 - Make Palindrome题目大意:给出一个字符串,通过插入字符使得原字符串变成一个回文串,要求插入的字符个数最小,并且输出最后生成的回文串。解题思路:和uva 10739的做法相似,只是本题只能插入字符,所以只要在考虑子问题的同时记录住最优的选择就可以了。#include #include const int N = 10

2013-09-17 20:46:04 1353

原创 uva 10739 String to Palindrome(dp)

题目连接:10739 - String to Palindrome题目大意:给出一个字符串, 通过增加, 删除或替换一个字符, 使得该字符串变成一个回文串, 要求操作最少, 输出最小的操作步数。解题思路:对于每个区间[i, j]:1、str[i] == str[j], dp[i][j] = dp[i + 1][j - 1];2、 str[i] != str[j],

2013-09-13 19:54:41 1975

原创 uva 348 Optimal Array Multiplication Sequence(区间dp)

题目连接:348 - Optimal Array Multiplication Sequence题目大意:给出n个矩阵, 每个矩阵有它的行和列, 现在要计算这n个连续的矩阵的乘积, 要求找出计算量最小的方案, 每两个矩阵相乘的计算量为(a.l * a.r * b.r),然后生成一个a.l和b.r的矩阵。解题思路:典型的区间dp, 只不过在每次找最优解之后要记录当前区间的最优

2013-09-13 19:46:52 1434

原创 uva 10313 Pay the Price(完全背包)

题目连接:10313 - Pay the Price题目大意:有0~300这300种价值的金额。 现在可能给出参数:1个:n, 输出可以组成价值n的方式的个数。2个:n, a输出用价值小于a的价值组成价值n的方式的个数。3个:n, a, b输出用价值大于a和小于b组成价值n的方式的个数。解题思路:完全背包的问题, 状态转移方程dp[i][j] = dp[i

2013-09-13 14:01:52 1547

原创 uva 10271 Chopsticks(dp)

题目连接:10271 - Chopsticks题目大意:给出m和n, 然后给出n根筷子从小到大给出, 现在要从这n根筷子中选出m + 8组筷子, 每组筷子包括三根, 现在要求所有m + 8组每组筷子中最短两根筷子之差的平方  的和最小,输出最小值。解题思路:一开始想用贪心做, 后来发现子问题是互相干预的。dp[i][j]表示在在第i根筷子已经取了j组筷子后的和的最小值,

2013-09-13 13:23:52 1570

原创 uva 10891 Game of Sum(区间dp)

题目连接:10891 - Game of Sum题目大意:有n个数字排成一条直线,然后有两个小伙伴来玩游戏, 每个小伙伴每次可以从两端(左或右)中的任意一端取走一个或若干个数(获得价值为取走数之和), 但是他取走的方式一定要让他在游戏结束时价值尽量的高,最头疼的是两个小伙伴都很聪明,所以每一轮两人都将按照对自己最有利的方法去取数字,请你算一下在游戏结束时,先取数的人价值与后取数人价值只

2013-09-13 00:19:45 1984

原创 uva 11137 Ingenuous Cubrency(完全背包)

题目连接:11137 - Ingenuous Cubrency题目大意:由21种规模的立方体(r 1~21),现在给出一个体积, 要求计算可以用多少种方式组成。解题思路:完全背包, 和uva674是一样的, 只是这里的体积是r ^ 3。 #include #include const int N = 10005;long long dp[N];void

2013-09-11 00:28:32 2103

原创 uva 10404 Bachet's Game(完全背包)

题目连接:10404 - Bachet's Game题目大意:由一堆石子, 给出石子的总数, 接下来由stan和ollie两个人玩游戏,给出n, 在给出n种取石子的方法(即为每次可取走石子的数量),由stan先,两人轮流取走石子,最后一个将石子全部去完的人胜利,问, 给出的一堆石子, 两人均按最好的方案游戏, 最后将会是谁胜 ?解题思路:问题可以看做是一个完全背包的变形

2013-09-11 00:06:44 4841

原创 uva 10534 Wavio Sequence(LIS)

题目连接:10534 - Wavio Sequence题目大意:给出一个字符串, 找出一个奇数的子序列,子序列的前版部分要递增, 后半部分要递减, 且递增和递减的长度要相等, 要求输出最长满足条件的子序列的长度。解题思路:题目可以转化成求字符串的最长递增子序列, 正向求一遍, 反向求一遍, 然后将相应位置的最长值取最小的进行比较(min(a[i], b[n - i - 1]

2013-09-10 23:04:52 1303 2

原创 uva 620 Cellular Structure

题目连接:620 - Cellular Structure题目大意:给出一个细胞群, 判断该细胞的可能是由哪一种生长方式的到的, 输出该生长方式的最后一种生长种类, "SIMPLE" -----------------------由 空 生成 ‘A'"FULLY-GROWN" ----------------在 原细胞群(不能为空)的后面 加上  ’AB'MUTAN

2013-09-10 22:52:16 1870

原创 uva 10465 Homer Simpson(完全背包)

题目连接:10465 - Homer Simpson题目大意:有两种汉堡包, 给出吃汉堡的时间, 再给出总的时间, 尽量不浪费给出的时间,输出能最多吃的汉堡个数, 如果一定需要浪费时间, 输出浪费时间最少的时刻内能吃的最多汉堡个数, 并再后面输出浪费掉的时间。解题思路:因为汉堡可以无限制的使用, 所以相当于是完全背包问题,dp[i]就是代表在i分钟之内最多能吃多少汉堡(时间

2013-09-10 21:23:02 1373

原创 uva 103 Stacking Boxes(DAG)

题目连接:103 - Stacking Boxes题目大意:有n个w维立体, 输出立体互相嵌套的层数的最大值, 并输出嵌套方式, 可嵌套的要求是外层立体的w条边可以分别对应大于内层立体。解题思路:可以将每个立体的w边安照从小到大排序, 比较的时候逐一比较就可以判断出可否嵌套, 然后就是纯DAG问题了。#include #include #include u

2013-09-09 23:54:13 1301

原创 uva 10051 Tower of Cubes(DAG最长路)

题目连接:10051 - Tower of Cubes题目大意:有n个正方体,从序号1~n, 对应的每个立方体的6个面分别有它的颜色(用数字给出),现在想要将立方体堆成塔,并且上面的立方体的序号要小于下面立方体的序号,相邻的面颜色必须相同。输出最高值和路径。解题思路:因为立方体可以旋转,所以一个序号的立方体对应这6种不同的摆放方式,可以将问题理解成DAG最长路问题, 只是搜

2013-09-09 23:45:19 1210

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除