随笔分类 -  动态规划

摘要:https://codeforces.ml/contest/1389/problem/F 法一:dp,所有区间按右端点排序,依次考虑“如果最后一个区间为该区间”的最优情况,它(叫做A)可以从一个“右端点比A的左端点小”的异类区间B转移过来,但是同时可以顺便把“B的右端点以右”的同类区间算上。算上同类 阅读全文
posted @ 2020-08-04 00:25 Blue233333 阅读(166) 评论(0) 推荐(0)
摘要:https://www.luogu.com.cn/problem/P3515 即计算最大的aj-ai+sqrt(|i-j|)。先考虑i>j的情况,此时可以验证有决策单调性:当决策点x,y和待计算点i,j满足x<y<i<j时,证明:若ax-ai+sqrt(|i-x|)<ay-ai+sqrt(|i-y| 阅读全文
posted @ 2020-01-31 11:50 Blue233333 阅读(132) 评论(0) 推荐(0)
摘要:$n \leq 5e4$个平面上的点,从原点出发,能从当前点向左、右、上、左上或右上到达该方向最近的给定点。问三个问:一、最多经过多少点;二、前一问的方案;三、其所有方案种非左右走的边至少要开几辆挖掘机走完,挖掘机能从任意点出发,走路方式跟上面一样。 前两问: 纵坐标是增的可在不同层之间直接dp。同 阅读全文
posted @ 2018-07-10 18:37 Blue233333 阅读(305) 评论(0) 推荐(0)
摘要:$n \leq 500$,$2-n$这些数字,两个人挑,可以重复挑,问有几种方案中,一个人选的所有数字与另一个人选的所有数字都互质。 不像前两题那么抠脚。。 如果$n$比较小的话,可以把两个人选的数字对应的质因子状压一下,$f(i,j,k)$--前$i$个数,第一个人选状态$j$,第二个人选状态$k 阅读全文
posted @ 2018-07-10 07:18 Blue233333 阅读(224) 评论(0) 推荐(0)
摘要:$n \leq 250000$的树有边权,每次问:使$k$个点无法到达根节点至少要割边权总和多少的边。$k$总和$\leq 500000$。 虚树模板。 1 //#include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 //#includ 阅读全文
posted @ 2018-07-04 12:07 Blue233333 阅读(226) 评论(0) 推荐(0)
摘要:$n \leq 8000$的数列,问不超过$m \leq 1e9$次操作后第一个数字最大是多少。操作:选一些数,把他们变成他们的平均值。需要保留$p \leq 3000$位小数,提供了一个小数高精度库。 太长懒得写了。。总之就是个斜率优化DP,然后有奇怪性质 原题解 基本能猜到定理八,十至今没理解Q 阅读全文
posted @ 2018-07-03 14:29 Blue233333 阅读(341) 评论(0) 推荐(0)
摘要:$n \leq 1e9$底边长的泳池,好懒啊泥萌自己看题吧,$k \leq 1000$。答案对998244353取膜。 现在令$P$为安全,$Q$为危险的概率。刚好$K$是极其不好算的,于是来算$\leq K$,然后用$calc(K)-calc(K-1)$解决。$f(i,j)$--$i$行$j$列的 阅读全文
posted @ 2018-06-23 13:43 Blue233333 阅读(193) 评论(0) 推荐(0)
摘要:$n \leq 20,m \leq 100000$的01矩阵,可整行整列01翻转,问最少剩几个1. 一个暴力的做法是枚举$2^n$种行翻转然后$m$列扫一遍。但其实在行翻转情况确定的情况下我们只关心两个东西:某一列在行翻转后剩几个1,以及有几个这样的列。$f(i,j)$--在行翻转$j$的情况下,有 阅读全文
posted @ 2018-06-21 07:48 Blue233333 阅读(254) 评论(0) 推荐(0)
摘要:$n \leq 200,m \leq 200$,$n*m$的矩阵,从左上到右下走一次只能向右向下,从右下到左上走一次只能向左向上,把两条路取并集,覆盖的数字加起来(经过两次的数算一次),问最大值多少。 费用流。或dp。dp的四维里面,有三维可以定剩下一维(步数一定),因此去掉一维即可。 1 //#i 阅读全文
posted @ 2018-06-16 15:38 Blue233333 阅读(336) 评论(0) 推荐(0)
摘要:$n \leq 200$个平面上的点,$q \leq 200$次询问:重复操作$m \leq 10000$次,到达点$x$的概率最大是多少。操作:一开始选点$P$,不一定要是给定点,可以是平面上任一点。然后,选一条穿过给定点至少两个点且穿过$P$的直线$l$,若有多条,等概率选一条;选中一条后,把$ 阅读全文
posted @ 2018-06-15 21:39 Blue233333 阅读(368) 评论(0) 推荐(0)
摘要:$n \leq 2000$的树,问从原点出发把每条边走至少一次再回到原点最少代价,有边权。其中可以使用$k$次传送门,始末位置不限,一次代价为$c$。 如果没有$k$的话直接每条边走两次。由于传送一次相当于一条链不用走,搞出来应该是求$k$条边不相交链的最大权和(相交的话,相交部分走了两次,相当于没 阅读全文
posted @ 2018-06-13 18:59 Blue233333 阅读(192) 评论(0) 推荐(0)
摘要:$n \leq 10000$的不同数字,问能组成的最长等差数列。 $f(i,j)$--$i,j$结尾的最长等差数列。枚举中间$i$,往左右扩展,找$j,k$,用$f(j,i)$来更新$f(i,k)$。 $n \leq 100000$的暂时不会。 1 //#include<iostream> 2 #i 阅读全文
posted @ 2018-06-11 21:33 Blue233333 阅读(252) 评论(0) 推荐(0)
摘要:$n \leq 500000$的树,开始有一个点是坏的,如果一个子树中坏点比例(不包括根节点)超过x那这整棵子树就会变坏,问最坏情况下不超过$K$个坏点的情况下$x$最小是多少。 被坑成傻逼。。 可以发现最坏情况下一开始的坏点一定是某个叶子。 首先容易看出的做法是二分完直接dp一次验证是否超过$K$ 阅读全文
posted @ 2018-05-25 14:34 Blue233333 阅读(178) 评论(0) 推荐(0)
摘要:突然很想做POI。。 $n \leq 20000,m \leq 200000$的无向边权图无自环重边,问:从1出发到$n$,必须经过$2,3,...,k+1$,$k \leq 20$,且满足$q$个限制:在访问$x$后一定要访问$y$,$x,y<=k+1$,这样的最短路。 听说卡时间。我:???? 阅读全文
posted @ 2018-05-03 18:35 Blue233333 阅读(239) 评论(0) 推荐(0)
摘要:$n \leq 50$的树,每个点有权值,现要选点(可多次选一个点)使点数尽量多,如下限制:选的总权值不超过$C \leq 1e9$;$c_i$表示$i$选的次数,$p_i$表示$i$的父亲,那么$c_{p_i} \leq c_i \leq c_{p_i}+D$,$D \leq 1e9$是给定常数。 阅读全文
posted @ 2018-04-23 15:31 Blue233333 阅读(513) 评论(0) 推荐(0)
摘要:$n \leq 3000$个酱,丢进拉面里,需要没两碗面的酱一样,并且每个酱至少出现两次,面的数量随意。问方案数。对一给定质数取模。 没法dp就大力容斥辣。。 $Ans=\sum_{i=0}^n (-1)^i \binom{n}{i} f(i)$ 其中$f(i)$是:$i$个酱不符合题意(就是没出现 阅读全文
posted @ 2018-04-22 20:09 Blue233333 阅读(343) 评论(0) 推荐(0)
摘要:$n \leq 10^300$,问所有$i<j$且$f_i>f_j$的$(i,j),1 \leq i \leq n,1 \leq j \leq n$数量。对某个数取模。 $f(a,b,0/1/2/3)$--前$a$位,两个数相差$b$个1,$b$可以为负数,然后四种情况:$i<j<n$,$i<j=n 阅读全文
posted @ 2018-04-20 21:34 Blue233333 阅读(84) 评论(0) 推荐(0)
摘要:$n \leq 2000,k \leq 2000$,现$n$种球每种有$k$个,在一种排列中,会把每种颜色的球第一个出现的涂成第0种(不同于原来的n种)颜色,问最终会出现多少种不同的序列。膜1e9+7. 把0球当成新的球,可以发现放球方案合法就是每个前缀中0球都比当前颜色数多。$f(i,j)$--放 阅读全文
posted @ 2018-04-17 16:23 Blue233333 阅读(162) 评论(0) 推荐(0)
摘要:$n*m \leq 100$的地板,问在空地铺$L$型砖的方案数。空地一定要铺,非空地一定不铺。对某个数取模。 直接插头DP。插头分三类,空,没拐弯,有拐弯。转移慢慢分。 1 //#include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 阅读全文
posted @ 2018-04-16 16:13 Blue233333 阅读(166) 评论(0) 推荐(0)
摘要:去年的老朋友。挺怀念的,回来看看。 $n \leq 12,m \leq 12$,$n*m$的01矩形,问在0中走路的欧拉回路数。答案保证longlong范围。 先设计插头:左右括号和空插头;然后分3*3种情况转移。耐心。 1 //#include<iostream> 2 #include<cstri 阅读全文
posted @ 2018-04-14 07:01 Blue233333 阅读(143) 评论(0) 推荐(0)