区间dp
文章平均质量分 72
ACMer_hades
没有伞的孩子只能够努力奔跑!
展开
-
zjnu(1182)——能量项链
这道题和石子归并其实是同样的题目。题目链接:http://acm.zjnu.edu.cn/CLanguage/showproblem?problem_id=1182题意:(那边写的不是很清楚)首先给你n个珠子,每个珠子都有两个属性,分别是头标记与尾标记,然后分别给出n个数,分别代表的是这些珠子的头标记。前一颗珠子的尾标记一定等于后一颗珠子的头标记。如果前一颗能量珠的头标记为m,尾标原创 2015-08-24 20:32:53 · 831 阅读 · 0 评论 -
zjnu(1181)——石子合并
这道题算是最简单的区间dp了。。很久之前写的,搞懂原理了就1A。状态方程定义:dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+sum[i][j]);然后利用三层for就好了。for(int len=2;len<=n;len++){ for(int s=1;s<=n-len+1;s++){ int e=s+len-1; f[s][e原创 2015-08-24 20:46:08 · 1035 阅读 · 0 评论 -
poj(2955)——Brackets(区间dp)
题意:现在我们定义一种R串,它必须满足以下条件:1)当它的字串是空的时候时,那么它是R串。2)当它是R串时,那么(s)或是[s]也是R串。3)当a和b都是R串时,那么ab也是R串。这里我没有完全领悟题目的意思,所以我发现递推不过去。其实它的实质就是括号匹配。if((a[s]=='('&&a[e]==')')||(a[s]=='['&&a[e]==']'))dp[s]原创 2015-08-26 23:30:04 · 803 阅读 · 0 评论 -
zjnu(1183)——括号序列【基础算法・动态规划】——高级
首先,我只想声明一点,这道题有毒。。。我用char读入就错了,然而换成string读入就对了或者可以把定义char的数组开的大一点,原先1A的一题硬是纠结了老半天。传送门:zjnu题意:就是对于一个组成的序列,添加尽量少的括号得到一个规则序列,并且输出这个序列的长度。不过我学到了两种定义dp状态的方法:1)定义dp[i][j]为i~j中需要添加的最少的括号数。原创 2015-08-27 23:36:54 · 2567 阅读 · 0 评论 -
LightOJ(1422)——Halloween Costumes
首先,我还是表扬一下自己,开始独立思考了,虽然说最后的想法是错误的,但是至少已经很接近了。所以,再接再厉吧!题意:现在那个人要去参加一个聚会,然后总共有n天,每天所要求穿的服饰的序号分别为c[i]。这个人可以一次性穿上1件衣服,或者一次性脱下任意多件衣服。当然也可以在衣服外面套衣服。并且如果这件衣服已经被脱下的话,那么它下次不能再次被穿上,如果我们还需要这件衣服的话,那么我们就只能原创 2015-08-28 17:55:37 · 1186 阅读 · 0 评论 -
UVA(348)——Optimal Array Multiplication Sequence(区间dp)
题意:就是矩阵链乘,然后让你输出符合最小运算量的路径。思路:矩阵链乘的状态转移方程是:原创 2015-10-12 19:24:00 · 452 阅读 · 0 评论