随笔分类 -  ACM

上一页 1 ··· 23 24 25 26 27 28 29 30 31 ··· 36 下一页
大二到大三不堪回首的记忆....
摘要:原题链接 考察:状压dp 思路: 预处理连续1的状态,再处理能放在第i行的状态.递推时枚举pos[i]和pos[i-1]的状态即可. 注意: 位运算==的优先级高于& 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 # 阅读全文
posted @ 2021-02-13 13:05 acmloser 阅读(41) 评论(0) 推荐(0)
摘要:原题链接 原来蒙德里安的梦想和最短路径是两个状压的套路题型....蒟蒻落泪 考察:状压dp 思路: 参考蒙德里安的梦想,本题如果i行的摆放只与i-1行有关.也就是说设i-1行的摆放情况为a,i行为b.要满足这些条件:a&b=0,a无连续1,b无连续1,a|b无连续1. 预处理合法的状态.再枚举合法的 阅读全文
posted @ 2021-02-13 12:14 acmloser 阅读(83) 评论(0) 推荐(0)
摘要:原题链接 考察:状压dp 时隔多年的复习233,还是做出来了 思路: 参考正常版的八皇后.我们需要标记左斜线,右斜线,已放棋子的列.在正常版我们是用数组记录,这里用状压dp可以用二进制位记录.所以三个变量now标记列,left是左斜线,right是右斜线.回溯不同于正常的dfs,正常的八皇后是用fo 阅读全文
posted @ 2021-02-13 00:10 acmloser 阅读(109) 评论(0) 推荐(0)
摘要:原题链接 考察:容斥原理+完全背包+计数dp 本蒟蒻是打死都想不到怎么用容斥原理... 错误思路: 乍看一下是多重背包,时间复杂度80*105*103(采用二进制优化)显然T了 正确思路: 采取完全背包预处理的方法,时间复杂度105 ,求出不限数量的取法.答案就是所有取法-不合法的取法.这里就可以想 阅读全文
posted @ 2021-02-12 17:23 acmloser 阅读(48) 评论(0) 推荐(0)
摘要:原题链接 考察:区间dp 这道题可以想到P4170涂色和Acwing 编辑距离的结合. 错误思路: 如果直接按a[i]==b[i]与a[j]==b[j]划分的话(实际上a[i]==b[i]与j可以合并),就会少了考虑b连续的条件.使得次数增加了. 错误思路2: 将a[i]==a[j]&&b[i]== 阅读全文
posted @ 2021-02-12 05:01 acmloser 阅读(62) 评论(0) 推荐(0)
摘要:原题链接 考察:区间dp 转移方程没想出来,思路参考大佬们的题解 错误思路: 本题主要难在[i,j]区间取走某一个数k时,我们要考虑继续往后取还是往前取,如果取前面的就只能取尾端,这就与我们一开始的子结构不符.所以此思路设置间断点划分集合行不通. 正确思路: f[i,]表示i~j人走花费的时间.考虑 阅读全文
posted @ 2021-02-12 02:16 acmloser 阅读(78) 评论(0) 推荐(0)
摘要:原题链接 考察:区间dp 这题没做出来,要不我还是别学OI了... 思路: f[i][j]表示[i,j]区间内取得的最小值.集合划分就是以中断点为标准,k = i+1,i+2...j-1...f[i][j] = min(f[i][k]+f[k][j]+a[i]*a[k]*a[j]) 为什么是a[i] 阅读全文
posted @ 2021-02-11 22:48 acmloser 阅读(36) 评论(0) 推荐(0)
摘要:原题链接 考察:区间dp+记忆化搜索(可有可无) 本蒟蒻是完全没思路...参考大佬的代码 参考大佬的思路: 参考括号匹配的dp题,这道题也是分为(())和()()型.但dp数组有所不同,根据()左右括号颜色的不同,里层或者断点f[i,k]会有不同方案数.以(())为例,14颜色的不同使得里层对应的方 阅读全文
posted @ 2021-02-11 21:02 acmloser 阅读(59) 评论(0) 推荐(0)
摘要:原题链接 考察:区间dp 区间dp的题想重写一遍,tm学了和没学一样,前几天都在睡,根本没刷题TAT 思路: 本道题要想到由局部最优解推导整体最优解,为什么能推到呢?首先f[i][j]表示[i,j]区间内要穿衣服的最少数量,在[i,j]区间内,枚举断点,由更小的最优解得到[i,j]区间的最优解.如果 阅读全文
posted @ 2021-02-11 16:24 acmloser 阅读(45) 评论(0) 推荐(0)
摘要:原题链接 考察:区间dp 思路: 和矩阵取数游戏P1005(本题的加强版)不能说很像,简直就是一模一样.f[l][r]区间表示卖掉[l,r]区间的最大收益,但是我们只能买两边的值,因此分为两类,卖l和卖r 1 #include <iostream> 2 #include <cstdio> 3 #in 阅读全文
posted @ 2021-02-11 13:44 acmloser 阅读(73) 评论(0) 推荐(0)
摘要:原题链接 考察:区间dp 思路: f[i][j]为涂色[i,j]区间的最少次数,按s[i]与s[j]的关系划分集合,如果s[i]!=s[j],我们枚举断点,f[i][j] = f[i][k]+f[k+1][j].如果s[i]==s[j],答案不是f[i+1][j-1]+1,这个方程不能处理全都相等的 阅读全文
posted @ 2021-02-11 13:23 acmloser 阅读(125) 评论(0) 推荐(0)
摘要:原题链接 考察:区间dp 思路: f[i][j]代表[i,j]合成后的最大值,根据题意,只有当f[i][k]=f[k+1][j]时,才能合并,即f[i][j] = max(f[i][j],f[i][k]+1).这道题求的是合并过程中的最大值,因此答案不一定是f[1][n]. 注意:根据题意,只有当a 阅读全文
posted @ 2021-02-11 02:16 acmloser 阅读(48) 评论(0) 推荐(0)
摘要:原题链接 考察:区间DP 思路: 与上题区别在于()是一类,()[]也是一类,两类需要分别处理,第一类和上题一样处理,分11 10 01 00(i,j是否在里面)讨论,第二类分为第一个括号序列和右边其他的括号序列,因为第一个括号序列无法表达,只能用包含它的f[i,k],所以第二类是f[i,k]+f[ 阅读全文
posted @ 2021-02-10 20:11 acmloser 阅读(84) 评论(0) 推荐(0)
摘要:原题链接 考察:区间DP+线性dp 思路一: 正向求解,f[i][j]表示[i,j]区间内应该删去的字符数.要注意的是如果i>j,那么为不合法区间,设置f[i][j] = 0.i = j,单个字符一定回文,f[i][j] = 0.接下来就是划分集合:s[i]=s[j]可缩小到f[i+1,j-1].如 阅读全文
posted @ 2021-02-10 15:49 acmloser 阅读(65) 评论(0) 推荐(0)
摘要:原题链接 考察:区间DP 这道题是能量项链的扩展... 思路: 在多边形内任取一条边,这条边一定属于某个三角形,划分情况随着三角形的顶点位置变化而变化.当选定一个三角形时,多边形被三角形分为两个部分,这两个部分是完全独立的,即f[i][j]表示的是i,j形成的多边形内划分三角形的情况,f[i][j] 阅读全文
posted @ 2021-02-10 10:58 acmloser 阅读(114) 评论(0) 推荐(0)
摘要:原题链接 考察:区间DP+dfs 关键在于想出怎么区间DP 思路: 根据石子合并那道题,f[l,r]是要合并的石子区间,那么这道题的f[l,r]是(l,r)区间内形成的二叉树,石子区间那道题集合的划分是根据隔板k的位置,那么这道题就是根节点的位置.要注意特殊的结点: 叶子结点,我们需要初始化叶子节点 阅读全文
posted @ 2021-02-09 00:08 acmloser 阅读(46) 评论(0) 推荐(0)
摘要:原题链接 考察:背包dp 错误思路: f[i,j] j表示和 此思路必错,会MLE. 正确思路: 需要转换式子.已知 x + x+d1 + x+d1 +d2+x+d1+d2+d3...=s 等价于 nx+(n-1)d1+(n-2)d2+.. = s. s与n已知,d在a与b徘徊,而x的范围太广,因此 阅读全文
posted @ 2021-02-08 13:46 acmloser 阅读(106) 评论(0) 推荐(0)
摘要:原题链接 考察:线性DP 思路: 最长上升子序列+01背包+数字三角形的综合 因为需要递增取数,所以必须记录上一个数是什么,从左上角到右下角,必须记录坐标,要求取k个数,必须记录取了几个数.因此需要四维数组 首先f[i][j][t][s]可以从上面和左面走来.到达一个新点,可以考虑取还是不取,取就是 阅读全文
posted @ 2021-02-07 22:20 acmloser 阅读(68) 评论(0) 推荐(0)
摘要:原题链接 考察:线性DP 和上道题其实是一样的题,区别在于这里要求是严格上升序列 但是转化一下就可以变成非严格上升序列: 非严格上升序列 b[i]-b[i-1]>=0 严格上升序列 b[i]-b[i-1]>=i-(i-1)//1是这么来的 因此变一下 b[i]-i>=b[i-1]-i+1即可 构造a 阅读全文
posted @ 2021-02-07 16:05 acmloser 阅读(80) 评论(0) 推荐(0)
摘要:原题链接 考察:线性DP 思路: 通过证明(dfs打表) 可以发现存在一个最优解,它的数字全部在A数组里出现过. 考虑根据最后一个数字设置状态转移方程,f[i][j]代表考虑前i个数,最后一个数字是a[j](b数组是非严格单调序列,和上题一样考虑,我们需要知道它的末尾值).f的属性就是和的最小值.去 阅读全文
posted @ 2021-02-07 12:11 acmloser 阅读(82) 评论(0) 推荐(0)

上一页 1 ··· 23 24 25 26 27 28 29 30 31 ··· 36 下一页