随笔分类 -  基础算法---动态规划

摘要:题目描述 N个任务排成一个序列在一台机器上等待完成(顺序不得改变),这N个任务被分成若干批,每批包含相邻的若干任务。从时刻0开始,这些任务被分批加工,第i个任务单独完成所需的时间是Ti。在每批任务开始前,机器需要启动时间S,而完成这批任务所需的时间是各个任务需要时间的总和(同一批任务将在同一时刻完成 阅读全文
posted @ 2016-11-16 11:12 keshuqi 阅读(226) 评论(0) 推荐(0)
摘要:题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的。 这里是 n=29 的二个例子: 第一和第二个珠子在图片中已经被作记号。 图片 A 中的项链可以用下面的字符串表示: brbrrrbbbrrrrrbrrbbrbbbbrrrrb 假如你要在一些点打 阅读全文
posted @ 2016-11-16 09:30 keshuqi 阅读(457) 评论(0) 推荐(1)
摘要:问题描述 mhy12345学习了二分图匹配,二分图是一种特殊的图,其中的点可以分到两个集合中,使得相同的集合中的点两两没有连边。 图的“匹配”是指这个图的一个边集,里面的边两两不存在公共端点。 匹配的大小是指该匹配有多少条边。 二分图匹配我们可以通过匈牙利算法得以在O(VE)时间复杂度内解决。 mh 阅读全文
posted @ 2016-11-15 21:20 keshuqi 阅读(385) 评论(0) 推荐(0)
摘要:题目描述 “我有个愿望,我希望穿越一切找到你。” 这是个二维平面世界,平面上有n个特殊的果实,我从(0,0)点出发,希望得到尽量多的果实,但是出于某种特殊的原因,我的运动方式只有三种(假设当前我在(x,y)): 1、我可以走到(x+1,y) 2、我可以走到(x,y+1) 3、我可以走到(x+1,y+ 阅读全文
posted @ 2016-11-15 11:05 keshuqi 阅读(378) 评论(0) 推荐(0)
摘要:题目描述 花匠栋栋种了一排花,每株花都有自己的高度。花儿越长越大,也越来越挤。栋栋决定 把这排中的一部分花移走,将剩下的留在原地,使得剩下的花能有空间长大,同时,栋栋希 望剩下的花排列得比较别致。 具体而言,栋栋的花的高度可以看成一列整数h1,h2..hn。设当一部分花被移走后,剩下的花的高度依次为 阅读全文
posted @ 2016-11-08 17:05 keshuqi 阅读(183) 评论(0) 推荐(0)
摘要:#149. 【NOIP2015】子串 有两个仅包含小写英文字母的字符串 AA 和 BB。 现在要从字符串 AA 中取出 kk 个互不重叠的非空子串,然后把这 kk 个子串按照其在字符串 AA 中出现的顺序依次连接起来得到一个新的字符串。请问有多少种方案可以使得这个新串与字符串 BB 相等? 注意:子 阅读全文
posted @ 2016-10-28 17:33 keshuqi 阅读(168) 评论(0) 推荐(0)
摘要:背景 北京奥运会开幕了,这是中国人的骄傲和自豪,中国健儿在运动场上已经创造了一个又一个辉煌,super pig也不例外……………… 描述 虽然兴奋剂是奥运会及其他重要比赛的禁药,是禁止服用的。但是运动员为了提高成绩难免要服用一些,super pig也不例外。为了不被尿检检查出来,这些药品就只能选一些 阅读全文
posted @ 2016-08-19 16:33 keshuqi 阅读(194) 评论(0) 推荐(0)
摘要:描述 XC的儿子小XC最喜欢玩的游戏用积木垒漂亮的城堡。城堡是用一些立方体的积木垒成的,城堡的每一层是一块积木。小XC是一个比他爸爸XC还聪明的孩子,他发现垒城堡的时候,如果下面的积木比上面的积木大,那么城堡便不容易倒。所以他在垒城堡的时候总是遵循这样的规则。 小XC想把自己垒的城堡送给幼儿园里漂亮 阅读全文
posted @ 2016-08-19 11:28 keshuqi 阅读(171) 评论(0) 推荐(0)
摘要:描述 2001年9月11日,一场突发的灾难将纽约世界贸易中心大厦夷为平地,Mr. F曾亲眼目睹了这次灾难。为了纪念“9?11”事件,Mr. F决定自己用水晶来搭建一座双塔。 Mr. F有N块水晶,每块水晶有一个高度,他想用这N块水晶搭建两座有同样高度的塔,使他们成为一座双塔,Mr. F可以从这N块水 阅读全文
posted @ 2016-08-18 19:59 keshuqi 阅读(159) 评论(0) 推荐(0)
摘要:Description 一个吉他手准备参加一场演出。他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都要改变一次音量。在演出开始之前,他已经做好了一个列表,里面写着在每首歌开始之前他想要改变的音量是多少。每一次改变音量,他可以选择调高也可以调低。 音量用一个整数描述。输入文件中给定整数b 阅读全文
posted @ 2016-08-18 09:49 keshuqi 阅读(166) 评论(0) 推荐(0)
摘要:描述 Flappy Bird 是一款风靡一时的休闲手机游戏。玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙。如果小鸟一不小心撞到了水管或者掉在地上的话,便宣告失败。 为了简化问题,我们对游戏规则进行了简化和改编: 游戏界面是一个长为 n,高为 m 的二维平面 阅读全文
posted @ 2016-08-17 19:49 keshuqi 阅读(155) 评论(0) 推荐(0)
摘要:描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变。守望者 在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上。为了杀死守望者,尤迪安开始对这 个荒岛施咒,这座岛很快就会沉下去。到那时,岛上的所有人都会遇难。守望者的跑步速度为 17m/s,以这样的速度是无法逃离荒岛的。 阅读全文
posted @ 2016-08-16 23:41 keshuqi 阅读(181) 评论(0) 推荐(0)
摘要:背景 NASA(美国航空航天局)因为航天飞机的隔热瓦等其他安 全技术问题一直大伤脑筋,因此在各方压力下终止了航天 飞机的历史,但是此类事情会不会在以后发生,谁也无法 保证,在遇到这类航天问题时,解决方法也许只能让航天 员出仓维修,但是多次的维修会消耗航天员大量的能量, 因此NASA便想设计一种食品方 阅读全文
posted @ 2016-08-16 17:28 keshuqi 阅读(146) 评论(0) 推荐(0)
摘要:来源:dd大牛之《背包九讲》 P01: 01背包问题 题目 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 基本思路 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 用子问题 阅读全文
posted @ 2016-08-16 10:49 keshuqi 阅读(186) 评论(0) 推荐(0)
摘要:题目描述 春春幼儿园举办了一年一度的“积木大赛”。今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是hi。 在搭建开始之前,没有任何积木(可以看成n块高度为 0 的积木)。接下来每次操作,小朋友们可以选择一段连续区间[l, r],然后将第第 L 阅读全文
posted @ 2016-08-12 19:36 keshuqi 阅读(186) 评论(0) 推荐(0)
摘要:from [http://blog.csdn.net/thisinnocence] 1 一个问题:换零钱方式的统计 SICP 第一章 1.2.2 树形递归中,有这么一问题:给了半美元,四分之一美元,10美分,5美分和1美分的硬币,将1美元换成零钱,一共有多少种不同方式?更一般的问题是,给定了任意数量 阅读全文
posted @ 2016-07-20 22:08 keshuqi 阅读(635) 评论(0) 推荐(0)
摘要:Dynamic Programming – From Novice to Advanced By Dumitru — topcoder member Discuss this article in the forums An important part of given problems can 阅读全文
posted @ 2016-07-19 12:43 keshuqi 阅读(249) 评论(0) 推荐(0)
摘要:动态规划的思考(1) 这是知乎上的一个提问: 转载回答: 作者:徐凯强 链接:https://www.zhihu.com/question/23995189/answer/35324479 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 动态规划中递推式的求解方法不 阅读全文
posted @ 2016-07-12 11:16 keshuqi 阅读(237) 评论(0) 推荐(0)
摘要:#include using namespace std; int n,f[18][18]; int main() { scanf("%d",&n); for(int i=0;i<=n;i++){ for(int j=0;j<=n-i;j++){ if(!i)f[i][j]=1; else if(!j)f[i][j]=f[i-1][1]; else f[i][j]=f[i... 阅读全文
posted @ 2016-04-10 12:21 keshuqi 阅读(143) 评论(0) 推荐(0)
摘要:#include #include #include using namespace std; char ss[7][210],s[210]; int n,k,m,len[7],f[210][41],d[210],w[210][210]; int main() { scanf("%d%d",&n,&k); for(int i=0;ilen[j]))d[i]=len[j]; for(int i... 阅读全文
posted @ 2016-04-10 12:20 keshuqi 阅读(161) 评论(0) 推荐(0)