随笔分类 -  ACM--DP--区间dp

该文被密码保护。
posted @ 2020-08-23 17:09 swsyya 阅读(0) 评论(0) 推荐(0)
摘要:Fragrant numbers(dfs爆搜+区间dp) 题意:给出一个以 "1145141919 " 无限循环的字符串,可以在合适的位置添加 ' + ' , ' * ' 和 ' ( ' , ' ) ' 将其转换为表达式进行运算,给了一个n,问最少需要前几个字符来构成n? 题解:\(dfs\)爆搜+ 阅读全文
posted @ 2020-08-13 22:21 swsyya 阅读(247) 评论(0) 推荐(0)
摘要:张老师的旅行 题解:区间dp。 \(区间dp的基本解题方法:枚举长度+枚举起点(那么终点根据长度也就知道了)+枚举分割点\) 但是本题并不需要枚举分割点,因为需要花费时间最短一定,那么一定是从所枚举的区间的一边一直走到另一边,那么是从左走到右还是从右走到左呢,这时我们就想到了dp开一维来放0,1,其 阅读全文
posted @ 2020-07-17 15:58 swsyya 阅读(158) 评论(0) 推荐(0)
摘要:Halloween Costumes 基础区间dp AC_Code 1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const int maxn = 110; 5 int dp[maxn][max 阅读全文
posted @ 2020-02-02 18:22 swsyya 阅读(199) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2020-02-02 12:24 swsyya 阅读(0) 评论(0) 推荐(0)
摘要:这道题是不可以用贪心的:因为每次要求合并相邻的两堆,不能保证每次合并的都是最多的,或是最少的 有一道题是链式的:石子归并 加上环怎么办? 断环为链:将长度为n的链复制一份接在后面,环的情况就是长度为2n的链中任意连续的长度为n的链。 注意平行四边形只能用于min,这道题要求的max是不能用平行四边形 阅读全文
posted @ 2020-02-02 11:04 swsyya 阅读(140) 评论(0) 推荐(0)
摘要:【思路】 我们 dp[i][j] 来表示合并第 i 堆到第 j 堆石子的最小代价。 那么状态转移方程为 dp[i][j] = min ( dp[i][j],dp[i][k]+dp[k+1][j]+w[i][j]); 其中, w[i][j] 表示把两部分合并起来的代价,即从第 i 堆到第 j 堆石子个 阅读全文
posted @ 2020-02-02 10:45 swsyya 阅读(290) 评论(0) 推荐(0)

回到顶部