随笔分类 - DP
摘要:首先如果是有向无环图的话就是度数之积了 于是我们需要减去构成环的情况,这个环一定是过新加的边的 那么不合法的情况就是选了yy->xx的一条路径,其他点乱选 进行DP,fi表示选yy->i的路径其他点乱选的方案数,fv= sigema((u,v)属于E) fu / v的度数
阅读全文
摘要:noip怎么考这种东西啊。。。看错题场上爆零凉了 首先我们先进行树链剖分,那么问题可以转换成重链的答案+其他子节点的答案 而每次修改相当于改一段重链的答案,改一次其他子节点的答案交替进行 这样只有一个好处,就是把问题转换成序列问题,可以用线段树优化 fx,1表示不选当前点的最优解,fx,2表示选 方
阅读全文
摘要:咸鱼做题天天%题解 那么我们可以把这道题转化成线段覆盖问题 读进来的a,b说明在最后的小到大顺序中,n-a+1~n比我大,1~b比我小 换言之就是b+1~n-a是和我相等的。 那么相同区间的我们可以合并,这个区间的权就是min(相同的个数,区间大小) 我们可以利用DP计算选择一些不相交的区间的最大值
阅读全文
摘要:这个思路好神仙啊啊啊啊啊啊啊啊 询问求的是a[i]^2 然而我们并不能把a[i]一一算出来(这样只有30pt) 但是我们可以把问题转化成两个人取,取出的序列相同的情况数,因为相同的两两对应所以容易证明这是对的 然后就水了
阅读全文
摘要:超车这个东西这么恶心肯定是要暴力求的(自圆其说) 那么分成一个个时间段来搞,然后DP一下 化一下那个速度,耗费时间是在300s~600s之间的 那我们就可以设f[i][j]为走到第i个位置用了j的时间相遇的最小值 这里有个坑点,就是出发时间和到达时间均相等的两辆车也算相遇。。。
阅读全文
摘要:被亮亮D飞啦!!QWQ 这题明明是最大权闭合子图+线段树优化构图好不好 被迫考虑DP,并且考虑f[i]表示到第i个位置的最大值(第i个位置可选可不选) 对于最终的答案,我们可以分割成一段一段的,也就是多段区间 枚举这个断点,断点以后的全选,前面的就通过继承得到,f[i]=f[j]-(sc[i]-sc
阅读全文
摘要:开4维记录两个坑最近两次送了啥就好
阅读全文
摘要:本来以为是求LIS,结果发现这样的话就变成随便插入了。。。 不过通过这个可以推出正确的思路,就是LIS中还要满足相邻两项(ai)+1==(ai+1)
阅读全文
摘要:刚说完五级算法题水就被亮老师D飞 这道题其实我理解错了很多次题意。。。(一直理解成v2囧) 考虑DP,一位表示拼成什么数字跑不掉了,但是一位搞不定,考虑加一维 拼出n最大的数?好像空间不太资瓷 考虑避实就虚,开一维表示用了多少不同的数字拼出n 总的就是f[i][j]表示用i个数字拼出了j 考虑如何转
阅读全文
摘要:首先我们很容易看出是一个DP 然后容易看出是数据结构优化DP 但是这个限制条件有点鬼畜: abs(p[i]-p[j])/2<=(t[i]-t[j]) p[i]>p[j] -> t[i]*2-p[i]>=t[j]*2-p[j] p[i]<p[j] -> t[i]*2+p[i]>=t[j]*2+p[j]
阅读全文
摘要:为啥我考虑了DP考虑了cdq就没考虑考虑两个合起来哩 这个题首先一看就很乱搞。。。 容易想到自己的值减去下标。。。 那么当前位置DP的话能继承什么呢? 首先位置要在自己前面,然后值要比自己小,还有,因为它前面的积木被推了它受影响我也受影响,我们之间的积木被推了我受影响它没事,所以它距离正确位置的距离
阅读全文
摘要:二维DP还挺好想吧,然而头皮发麻写的 不是很会输出方案的说。。 一开始像往常一样弄个返回的位置一步步退,结果发现后面还会更新到返回的地方,omg %了题解发现是枚举m先,然后用z数组记录第i步选的是啥,最后for循环就退回去了。。。
阅读全文
摘要:神题 先按贪婪值大到小排序,根据贪心的思想g[i]越大a[i]也越大(这个微扰可以证,给个提示,a>b且c<d 则 (a-b)(c-d)<0 则 ac+bd<ad+bc) DP有四个维吧,当前枚举到的位置,已经拿的饼数,最后一个人拿了多少饼以及它的a值是多少。 这样稳M稳T,由于a是有单调性,而且区
阅读全文
摘要:一个自以为很对的东西,我们往-1放的数肯定是不增的。 然后就预处理一下,假如i这个位置放j会多多少逆序对。 DP一下,我的复杂度应该是O(n*m^2)的,然而你随便搞都能省掉一个m吧,我算了算好像可以过就不管了。 注意树状数组的时候getsum是a[i]-1,相同是不算逆序对的
阅读全文
摘要:闲着无事跟zory做题。。。(还星星是权限) 逆推。没了
阅读全文
摘要:mdzz调了一中午。。 用了解的单词建AC自动机 原问题显然不太好搞啊。。 那么转换一下sum-不包含了解单词的文本数 问题变成在AC机上走m步不到达ed节点的方案数 变成DP: f[i][j]表示走到第i个节点,走了j步 宽搜转移一下。 坑点就是了解的单词有一个是另一个的字串就会减多 这样的话要把
阅读全文
摘要:被hhn d飞a 一直不想(gan)做这题 首先先把作文库插入SAM,两两间插个2(这里产生很多细节!空间要开到3,而且深度是要累计的) 对于每个作文,先在SAM跑一遍,求出match数组,该数组表示以当前为结束点往前最长能被自动机识别的长度 二分答案 考虑DP,f[i]表示到第i个位置,最多能够识
阅读全文
摘要:我真是中考跑傻了首先第一步就是区间同除K变成求gcd==1都忘了然后就是倒着枚举倍数i求当前区间内i的倍数的个数用f[i]表示很容易发现这是一个容斥原理比较小i要减去前面全部的倍数 需要判一下边界,这个东西我WA了3次。。。。
阅读全文
摘要:一开始以为是费用流。。然后搞不出来,路牌是DP,想一想 f[i][j]表示加工到第i个产品,然后A用时j,B用时的最小值 那么f[i][j]=max(f[i-1][j-a[i]],f[i-1][j]+b[i],f[i-1][j-c[i]]+c[i]) 滚掉一维美滋滋
阅读全文
摘要:DP 一个人要么加入一个圈,要么三个人开一圈
阅读全文