Welcome 微信登录

首页 / 软件开发 / 数据结构与算法

算法:zoj-3626 Treasure Hunt I (树形dp)

算法:zoj-3626 Treasure Hunt I (树形dp)

算法:zoj-3626 Treasure Hunt I (树形dp)2014-01-05 csdn shuangde800题意给一棵n个节点的树, 节点编号1~n, 每个节点有权值val[i],经过这个节点就可以获取这个价值( 不能重复获得)每一条边有一个花费值w(i,j), 表示走完i和j点的边要花费w(i,j)现在要从k点出发, 总花费值为m,问总花费不超过m的情况下并且最终要回到出发点,最多可以获取多少价值?思路简单树形dp。f(i,j)表示子树i,...
算法:UVA 10163 - Storage Keepers(dp)

算法:UVA 10163 - Storage Keepers(dp)

算法:UVA 10163 - Storage Keepers(dp)2014-01-05 csdn shuangde800题意有n个仓库,让m个人来看管。一个仓库只能由一个人来看管,一个人可以看管多个仓库。每个人有一个能力值pi,如果他看管k个仓库,那么所看管的每个仓库的安全值为 pi/k(向下取整)如果某个仓库没有人看管,那么它的安全值为0。所有仓库的安全值L = min{ 每个仓库的安全值 }如果雇佣一个人的工资等于他的能力值pi。从m个人中选择一些人...
UVA 10254 - The Priest Mathematician (dp | 汉诺塔 | 找规律 | 大数)

UVA 10254 - The Priest Mathematician (dp | 汉诺塔 | 找规律 | 大数)

UVA 10254 - The Priest Mathematician (dp | 汉诺塔 | 找规律 | 大数)2014-01-05 csdn shuangde800题意:汉诺塔游戏请看 百度百科:http://baike.baidu.com/view/191666.htm正常的汉诺塔游戏是只有3个柱子,并且如果有n个圆盘,至少需要2^n-1步才能达到目标。但是在 这题中,有4根柱子,并且按照下面规则来玩:1. 先把圆盘顶部前k个盘子全部搬到第四根柱子...
算法:uva 10453 - Make Palindrome (区间dp,记忆化搜索)

算法:uva 10453 - Make Palindrome (区间dp,记忆化搜索)

算法:uva 10453 - Make Palindrome (区间dp,记忆化搜索)2014-01-05题目大意给一个字符串,要求添加最少个字符,把它变成回文串,并输出。思路简单的区间dp,f(i, j) 表示区间(i, j) 内的字符串添加的最少个数,变成回文串那么, 如果 str[i]==str[j], f(i, j) = f(i+1, j-1) + 1f(i, j) = min{f(i+1, j), f(i, j-1)} + 1;题目要输 出方案,...
uva 10599 - Robots(II) (dp | 记忆化搜索)

uva 10599 - Robots(II) (dp | 记忆化搜索)

uva 10599 - Robots(II) (dp | 记忆化搜索)2014-01-05题意给一个n*m大小的网格,有一些格子上面会有一个垃圾。机器人从左上角(1,1)出发,每次只能选 择向右,或者向下走一步,终点是(n, m)。问最多可以捡多少个垃圾? 且捡最多垃圾有几种路径方案? 注意路径方案指和有垃圾的格子有关。思路一开始没注意到方案只和有垃圾的格子有关,当作水 题做,结果输出的方案数比样例大了非常多。然后又想了下。根据题意,路径只和有垃圾的格子有...
算法:uva 10859 Placing Lampposts (树形dp)

算法:uva 10859 Placing Lampposts (树形dp)

算法:uva 10859 Placing Lampposts (树形dp)2014-01-05 csdn shuangde题目大意给你一个n个点m条边的无向无环图,在尽量少的节点上放灯,使得所有边都被照亮。 每盏灯将照亮以它为一个端点的所有边。在灯的总数最小的前提下,被两盏灯同时被照亮的边数应该 尽量大。思路这是LRJ《训练指南》上的例题。这题教会了我一个很有用的技巧:有 两个所求的值要优化,比如让a尽量小,b也尽量小那么可以转化为让 M*a+b尽量小,其...
算法:uva - 10271 - Chopsticks (dp | 经典)

算法:uva - 10271 - Chopsticks (dp | 经典)

算法:uva - 10271 - Chopsticks (dp | 经典)2014-01-05 csdn shuangde题意刘汝佳请了K个客人到他家吃晚饭,加上他的家人:他的老婆、儿子、女儿、妈妈、爸爸、岳父、岳母,那么这顿晚饭一共有K+8个人。因为是吃中餐,所以需要筷子,他家里一共有N根筷子,而且长短不一,这时刘汝佳的ACMer本性又暴露出来了,他不按照正常的每个人都给两只筷子,而是每个人分3根筷子,其中最长的一根用来叉比较大块的食物,而另外两根较短的...
算法:uva 12260 - Free Goodies (dp,贪心 | 好题)

算法:uva 12260 - Free Goodies (dp,贪心 | 好题)

算法:uva 12260 - Free Goodies (dp,贪心 | 好题)2014-01-05 csdn shuangde题意Petra和Jan分n个糖果,每个人轮流拿,一次只能拿一个,抽签决定谁先开始拿每个糖果 有两个值x,y, 如果Petra拿了会获得值x, Jan拿了会获得值yPetra每次都选择对自己价值最大的(x最大) 拿,如果有多个x相同大,选择y值最小的Jan选择的策略是,要让自己最终获得的总价值最大, 并且在这 个的前提下,要让Pet...
算法:uva 10934 Dropping water balloons(dp | 难想)

算法:uva 10934 Dropping water balloons(dp | 难想)

算法:uva 10934 Dropping water balloons(dp | 难想)2014-01-05 csdn shuangde题意你有k个一模一样的水球,在一个n层楼的建筑物上进行测试,你想知道水球最低从几层楼往 下丢可以让水球破掉。由于你很懒,所以你想要丢最少次水球来测出水球刚好破掉的最低楼层。(在最糟情 况下,水球在顶楼也不会破)你可以在某一层楼丢下水球来测试,如果水球没破,你可以再捡起来继续用。Input输入的每一行包含多组测试,每组测试...
算法:uva 11404 Palindromic Subsequence(LCS回文串,最小字典序)

算法:uva 11404 Palindromic Subsequence(LCS回文串,最小字典序)

算法:uva 11404 Palindromic Subsequence(LCS回文串,最小字典序)2014-01-05 csdn shuangde800题目大意给一个字符串,输出它的最长回文串,如果有多个结果,输出字典序最小的。思 路我们都知道把一个字符串逆序后和原字符串进最长公共子序列,可以计算出它的最长回文串长度。但是这题不仅要输出回文串,而且还要求是字典序最小的,所以挺难搞的。设str1是正序字符串, str2是逆序后的字符串f[i][j].len...
算法:uva 11456 - Trainsorting(dp,LIS)

算法:uva 11456 - Trainsorting(dp,LIS)

算法:uva 11456 - Trainsorting(dp,LIS)2014-01-05 csdn shuangde800题意艾琳是个开火车的机师,她也负责车厢的调度。她喜欢把车厢依重量由大到小排列,把最重 的车厢摆在火车的前方。不幸的是,排列车厢并不容易。你不能直接把一截车厢拿起来放在别处。把一截 车箱插入现有的列车中间并不切实际。一截车厢仅能接在列车的前面或后面。车厢以事先排定的顺序抵达 车站。当一截车厢抵达时,艾琳可以把它接在列车的前方或后方,或根...
算法:HDU 2126 Buy the souvenirs (dp 二维01背包)

算法:HDU 2126 Buy the souvenirs (dp 二维01背包)

算法:HDU 2126 Buy the souvenirs (dp 二维01背包)2014-01-07 csdn shuangde800题目大意:有n(0<n<=30)件物品,每件物品的价格是Pi,要用m(0<=m<=500)块钱去 买这些物品,要求买尽量多数量的物品,问买最多数量的物品共有多少总方案?思路:这题 还是比较容易想到的f[i][j][k], 表示前i个物品,用费用j,买k个物品共有多少个方案得到 状态转移方程:f[i]...
算法:hdu 2639 Bone Collector II (dp 01背包求第k优解)

算法:hdu 2639 Bone Collector II (dp 01背包求第k优解)

算法:hdu 2639 Bone Collector II (dp 01背包求第k优解)2014-01-07 csdn shuangde800题目大意:有n件物品,每件物品有体积和价值两个属性, 一个小偷带着一个大小为v的背包,要 偷这些东西,问小偷能偷的第k大的价值是多少?思路:这题和典型的01背包求最优解不同, 是要求第k大的解,所以,最直观的想法就是在01背包的基础上再增加一维,用来保存前k大小的数,然后在 递推时,根据前一个状态的前k大小的数推出下...
算法:HDU 3062 Party (2-SAT入门学习)

算法:HDU 3062 Party (2-SAT入门学习)

算法:HDU 3062 Party (2-SAT入门学习)2014-01-07 csdn shuangde800Problem Description有n对夫妻被邀请参加一个聚会,因为场地的问题,每对夫妻中只有1人可以 列席。在2n 个人中,某些人之间有着很大的矛盾(当然夫妻之间是没有矛盾的),有矛盾的2个人是不会同 时出现在聚会上的。有没有可能会有n 个人同时列席?Inputn: 表示有n对夫妻被邀请 (n<= 1000) m: 表示有m 对矛盾关...
算法:HDU 3622 Bomb Game(2-SAT + 二分)

算法:HDU 3622 Bomb Game(2-SAT + 二分)

算法:HDU 3622 Bomb Game(2-SAT + 二分)2014-01-07 csdn shuangde800【题目大意】要在坐标轴上放N次炸弹,每次可以选择两个位置中的一个位置放置,每个炸弹都可 以控制它的爆炸范围(以放置位置为圆心的半径为r的圆圈),问半径最大可以多少,使得任意两个炸弹的爆 炸范围都不重合。【思路】类似与poj 2296 , 但是判断重合的方法容易多了,果断 1Y注意精度问题。【代码】#include<iostream&...
算法:HDU 4115 Eliminate the Conflict (2-SAT判断)

算法:HDU 4115 Eliminate the Conflict (2-SAT判断)

算法:HDU 4115 Eliminate the Conflict (2-SAT判断)2014-01-07 csdn shuangde800【题目大意】Bob和Alice玩剪刀石头布,一个玩n轮,Alice已经知道了Bob每次要出什么,1代表 剪刀,2代表石头,3代表布,然后Bob对Alice作出了一些限制:给m行,每行是a b k,如果k是0,表 示Alice第a次和b次出的拳必须相同,如果k是1,表示Alice第a次和b次出的拳必须不相同。一但 Al...
算法:hdu 4558 剑侠情缘(dp, 西山居复赛1第2题)

算法:hdu 4558 剑侠情缘(dp, 西山居复赛1第2题)

算法:hdu 4558 剑侠情缘(dp, 西山居复赛1第2题)2014-01-10 csdn shuangde800思路:这是刚练dp后做比赛遇到的第一道dp题比赛时想了一个状态转移方程,f[i][j][k][l][2], i和j表示在第i行j列, k和l表示人和剑的能量,最后一维0表示当前这个能量给人补充,1表示给剑补充转移为: f[i][j][k][l][0] = f[i-1][j][k-mat[i][j]][l][1]+f[i][j-1][k-mat...
算法:poj 1837 Balance (dp 01背包)

算法:poj 1837 Balance (dp 01背包)

算法:poj 1837 Balance (dp 01背包)2014-01-10 csdn shuangde800题目大意:有一个天平,天平左右两边的手臂长度都是15,手臂上面有些位置会有挂钩。还有G 个砝码 (1 <= G <= 20),它们重量各不相同,在1~25中取值。给出C个挂钩,它们的位置在 【-15..15】,不会重叠。负号的代表在左边臂,正号的在右边。要求把所有砝码都放在挂钩上,多 个砝码可以挂在同一个挂钩上,问有多少种不同的方案使...
<< 71 72 73 74 75 76 77 78 79 80 >>