2011年5月28日
摘要: 这个题来自Codejam的Round 1C 2009 的C题。题意:连续编号i..j个牢房,每个牢房最初住着一个犯人。释放犯人k时,需要bribe犯人k两边的犯人,直到遇见空牢房或者边界。输入,是一个释放犯人序列。求,最小 bribe的金币。和最优二叉查找树差不多的DP。找到中间那个划分点,把问题分为两个子问题。显然构成最优子结构。/* 动态规划 cost(i, j) = min{cost(i, k) + cost(k, j) + pos[j] - pos[i] -2} , i < k < j */#include <stdio.h>#include <limit 阅读全文
posted @ 2011-05-28 19:15 yongmou- 阅读(675) 评论(0) 推荐(1) 编辑
摘要: Google Codejam的模式有点特别,自己下载数据,运行完,提交结果,而不像普通OJ,提交代码到服务器,由服务器编译运行。个人感觉这种模式很好,语言,技术任我们选,只要能得出正确的结果就行。数据还分为small 和 large两种。这样,当我们实在找不出好的算法,也可以用暴力拿几个point。支持Google,希望有朝一日能去Google工作。 阅读全文
posted @ 2011-05-28 19:03 yongmou- 阅读(731) 评论(0) 推荐(0) 编辑