01背包。
题意是说要把一堆钱分给两个人,尽可能的平均。要求最终两人的差最小。
01背包,查看某个价值是否可能达到。能就1,不能就0.
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define INF 0x7fffff...
分类:
其他好文 时间:
2014-11-11 10:49:28
阅读次数:
145
石子合并(一)
时间限制:1000 ms | 内存限制:65535 KB
难度:3
描述 有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆。求出总的代价最小值。
输入有多组测试数据,输入到文件结束。
每组测试数据第一行有一个整...
分类:
其他好文 时间:
2014-11-10 10:11:05
阅读次数:
167
免费馅饼
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 26519 Accepted Submission(s): 9032
Problem Description
都说天上不会掉馅饼,但有一天gameboy正走在...
分类:
其他好文 时间:
2014-11-06 23:40:42
阅读次数:
451
跟UVA 674 Coin Change 一样。就是范围变大了而已。
不过当结果只有一种可能的时候需要输出 There is only 1 way to produce n cents change.
int 会溢出,使用 long long
#include
#include
#include
#include
#include
#include
#include
#include...
分类:
其他好文 时间:
2014-11-06 11:01:41
阅读次数:
165
描述
有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40。John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an。John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品。现在的问题是,John有多少种不同的选择物品的方式。
输入
输入的第一行是正整数n (1 1,a2……an的...
分类:
其他好文 时间:
2014-11-05 19:49:19
阅读次数:
130
再没有比算法更让人头疼的东西了吧! 前两天参加了一个编程大赛http://www.ijiami.cn/newsInfo?id=519&v=2,有感于算法,所以整理了这篇关于编程竞赛的10个算法。 动态规划(DP)似乎占据了大部分的编程竞赛题目,...
分类:
编程语言 时间:
2014-10-22 18:41:04
阅读次数:
208
动态规划(DP)似乎占据了大部分的编程竞赛题目,乃至三分之一。当然,DP也不是一个学一次就Ok的单一算法。
这还取决于你是否把数据结构与算法放在同一个等级中考虑。如果你想要在编程竞赛中一展风采的话,当然,有些数据结构是你应该熟悉的。其中最重要的有范围树(Range Tree,也被称为线段树或区间树)和树状数组(BITs),也被称作Fenwick树。除此之外,许多DP算法使用了一个前缀和数组(prefix sum array)。
能想到的最精华的单一算法如下所列,排名不分先后。绝大多数非动态规划问题似乎都...
分类:
编程语言 时间:
2014-10-22 15:56:48
阅读次数:
208
现在要把这几种常见的算法给理清弄明白了,要不然只能做个低级程序员了。
动态规划DP是求解决策过程的最优化的数学方式。动态规划一般分为线性动规,区域动规,树形动规,背包动规。
动态规划是一种方法,但不是一种算法,一般用于多决策中的最优化问题,具有递推的思想。动态规划与分治法类似,基本思想都是把待解问题分解成若干个子问题,先求解子问题,然后由这些子问题的解得到原问题的解。但分治法中分解得到...
分类:
其他好文 时间:
2014-10-21 21:35:23
阅读次数:
214
比较水的动态规划
dp[i][j] 将原串 i ~ j 之内的字符转化为回文字符所需要的最小操作次数
其中删除操作和添加操作本质上是一样的。
三个状态转移方程:
dp[i][j] = min(dp[i][j] ,dp[i + 1][j]);
dp[i][j] = min(dp[i][j] ,dp[i + 1][j - 1]);
dp[i][j] = min(dp[i][j] ,dp...
分类:
其他好文 时间:
2014-09-04 19:05:40
阅读次数:
189
思想: 动态规划。
DP[i][j] = (DP[i-1][j] && s1[i-1] == s3[i+j-1]) || (DP[i][j-1] && s2[j-1] == s3[i+j-1]); 其中,i, j 分别为字符串 s1, s2 的当前长度。
方法二: 进一步优化,空间复杂度, ...
分类:
其他好文 时间:
2014-08-27 20:26:28
阅读次数:
224