随笔分类 -  区间dp

摘要:题目链接:http://poj.org/problem?id=1651 思路:除了头尾两个数不能取之外,要求把所有的数取完,每取一个数都要花费这个数与相邻两个数乘积的代价,需要这个代价是最小的 用dp[i][j]表示区间[i,j]的最小代价,那么就有dp[i][j]=min(dp[i][k]+dp[ 阅读全文
posted @ 2016-08-03 09:49 pter 阅读(150) 评论(0) 推荐(0)
摘要:链接:http://poj.org/problem?id=3280 思路:题目给出n种m个字符,每个字符都有对应的添加和删除的代价,求出构成最小回文串的代价 dp[i][j]代表区间i到区间j成为回文串的最小代价,那么对于dp[i][j]有三种情况: 1、dp[i+1][j]表示区间i+1到区间j已 阅读全文
posted @ 2016-08-02 16:53 pter 阅读(168) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=2955 思路:括号匹配问题,求出所给序列中最长的可以匹配的长度(中间可以存在不匹配的)例如[(])]有[()]符合条件,长度为4 dp[i][j]代表从区间i到区间j所匹配的括号的最大个数,首先,假设不匹配,那么dp[i][j]=dp[ 阅读全文
posted @ 2016-08-01 15:53 pter 阅读(124) 评论(0) 推荐(0)
摘要:题意:给你一个n,m,n表示有n分钟,每i分钟对应的是第i分钟能跑的距离,m代表最大疲劳度,每跑一分钟疲劳度+1,当疲劳度==m,必须休息,在任意时刻都可以选择休息,如果选择休息,那么必须休息到疲劳度为0,当然,当疲劳度为0的时候也是可以继续选择休息的,求在n分钟后疲劳度为0所跑的最大距离 思路:d 阅读全文
posted @ 2016-05-20 20:54 pter 阅读(159) 评论(0) 推荐(0)
摘要:题意:一系列的数字,除了头尾不能动,每次取出一个数字,这个数字与左右相邻数字的乘积为其价值,最后将所有价值加起来,要求最小值 思路:求出每个区间的最小值,一直扩散到整个区间 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #incl... 阅读全文
posted @ 2016-05-20 19:23 pter 阅读(150) 评论(0) 推荐(0)
摘要:第一道区间dp题,感觉题意不是很好理解 题意:一次可以转换某一个位置的字符,或是一串连续的字符,举第一个例子zzzzzfzzzzz 1:aaaaaaaaaaa 2: abbbbbbbbba 3: abcccccccba 4: abcdddddcba 5: abcdeeedcba 6: abcdefe 阅读全文
posted @ 2016-05-18 22:08 pter 阅读(139) 评论(0) 推荐(0)