随笔分类 -  XCPC——动态规划

摘要:将n拆分成任意个无标号正整数(也可认为是排好序)的方案数记为Pn 暴力DP——O(n2) 两种考虑方式,第一维都是总和,对于第二维,一种是考虑前j种数,另一种是分成j个数。即第一种是完全背包,第二种是考虑最小的数是否为1转移。 数据分治优化——O(nn) 注意到两种DP 阅读全文
posted @ 2023-01-13 21:15 sz[sz] 阅读(60) 评论(0) 推荐(1) 编辑
摘要:题目链接 首先看问题一(算最小周长),并没有用题解的神奇结论,而是直接整除分块枚举(n1)/x,取对应的最小x,在n种可能内取最优的~~(能暴力算为什么要考虑结论呢)~~然而最后这部分被卡常了,,,整除分块换成枚举x才过,先总结一下这部分的常数问题: 对于整除分块,如果对于一个 阅读全文
posted @ 2023-01-13 17:44 sz[sz] 阅读(38) 评论(0) 推荐(0) 编辑
摘要:题目链接 设f[i]表示还有i个数不在集合内的期望步数,尝试列一下转移式,会发现式子由转移到下一轮的期望步数和之后的DP值组成,考虑DP的转移过程,就会发现答案为转移到下一轮的期望步数×期望的轮数(即把前者设为1之后的DP值)。 前者是易求的,考虑后者,如果直接考虑一轮第一次遇到0时 阅读全文
posted @ 2022-12-01 15:17 sz[sz] 阅读(31) 评论(1) 推荐(0) 编辑
摘要:oi-wiki的讲解 1D1D 转移代价函数满足交叉优于包含,即可推出具有决策单调性。 然后比较一般的做法是,根据每个点能够作为被决策点的是一段区间,且区间随着点连续右移,可以用单调队列维护决策点,每次加入时弹出队尾所有能够完全覆盖的,然后到第一个不完全覆盖的,二分找出区间左端点。 对于被决策点不会 阅读全文
posted @ 2022-07-31 16:11 sz[sz] 阅读(91) 评论(0) 推荐(0) 编辑
摘要:题目链接 首先是判断每个子集是否覆盖了整个矩形,离散化后暴力做是 O(2nT400),会TLE。当时队友想了一个挺巧妙的容斥的做法,但写起来比较复杂。其实发现就是一个01取并集的过程,可以直接bitset优化掉32倍的常数就ok了! 然后是状态转移,其实是比较经典的问题:有向图第一次走到合法 阅读全文
posted @ 2022-07-13 12:01 sz[sz] 阅读(26) 评论(0) 推荐(0) 编辑
摘要:题目链接 对于有向图的问题,先想DAG该怎么做,这点还是没错的。对于DAG,就是一个按照拓扑序的DP,从n出发,每个点考虑删掉几条边即可(因为一定是删掉通往的点最差的那些边)。然后就一直在想有环怎么处理,但似乎不存在正确的解决方案。 这时候就应该考虑dijkstra的思路,即按照答案从小到大更新。沿 阅读全文
posted @ 2022-07-11 19:25 sz[sz] 阅读(46) 评论(0) 推荐(1) 编辑
摘要:题目链接 考虑状压DP,原本想的是一行行转移,而最后一行的状态需要记3m个,然后直接转移的话,需要枚举该行的2变成0或1,以及0是否选入集合,又是一个3m,复杂度爆炸,且难以优化状态。(原本还莽了一下,以为可以优化掉一些地方,然而全是2的数据就凉了。) 那么只能优化转移的方式了。所以这个 阅读全文
posted @ 2022-04-03 21:17 sz[sz] 阅读(132) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示