上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 15 下一页
摘要: 题目描述 题解: 相当于找两条起点到终点的路径。 所以拆点后只有起点和终点的$x$和$y$之间容量为$2$,其余为$1$。 直接最大费用流即可。 代码: 阅读全文
posted @ 2019-01-11 17:43 LiGuanlin 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 裸如飞行员的二分图匹配问题。 直接上代码: 阅读全文
posted @ 2019-01-11 17:00 LiGuanlin 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 个人认为网络流二十三题中比较有意思的一道。 先枚举球数。 每加一个球,从$S$向$xi$连一条容量为$1$的边,从$yi$向$T$连一条容量为$1$的边。 然后从$xi$向满足$i+j$为完全平方数的$yj$连容量为$1$的边。 在残余网络上跑$EK$或$Dinic$,如果得到的最 阅读全文
posted @ 2019-01-11 16:56 LiGuanlin 阅读(287) 评论(0) 推荐(1) 编辑
摘要: 题目描述 题解: 最大流。 建图即$S$向各单位建边,容量为单位人数; 各单位向所有餐桌建边,容量都为$1$,指每张桌只能有一个人来自这个单位; 所有餐桌向$T$建边,容量为餐桌容量。 若最后得到的最大流为总人数,代表所有人都吃上饭了。 就可以遍历出边输出了。 代码: 阅读全文
posted @ 2019-01-11 16:48 LiGuanlin 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 最大费用最大流。 建图很简单,就是将机器人作为流,进入就从$S$向内流,出来就从图向$T$流。 代码: 阅读全文
posted @ 2019-01-11 16:42 LiGuanlin 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 裸的最小、大费用最大流。 其实和最小费用最大流一样,只是推进去时费用取反,输出也取反。 代码: 阅读全文
posted @ 2019-01-11 16:38 LiGuanlin 阅读(456) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 很裸的一道最小费用流。 求一下平均数,然后原数-=平均数。 若得到值为正,则从$S$向该点连一条流量为得到值,费用为$0$的边, 若为负,则从该点连一条流量为得到值绝对值,费用为$0$的边。 然后相邻的点互相建流量$inf$,费用为$1$的边。 然后最小费用最大流裸上。 代码: 阅读全文
posted @ 2019-01-11 16:35 LiGuanlin 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 很玄学的一道数位$dp$,看了很多篇题解才懂。 直接挂$l$的题解。 代码: 阅读全文
posted @ 2019-01-11 16:29 LiGuanlin 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 数位$dp$模板题。 只需要记录上升下降,还有是否在边界上即可。 其中$f,g$是前缀和和后缀和。 代码: 阅读全文
posted @ 2019-01-11 16:23 LiGuanlin 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 一看$n$就知道是矩乘加速递推。 问题是怎么推。 不妨认为生成树的边是大号指向小号的。 首先,对于一般节点$x$,$x$可以连到$x-k$,但是连不到$x-k-1$。(废话) 所以我们处理点$x$时要确保$x-k$已经在前面的生成树里面了。 然后就是状态的问题。 由于$x$只能连到 阅读全文
posted @ 2019-01-07 16:14 LiGuanlin 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 数据范围:2<=n,m<=8 题解: 很明显需要状压。但是怎么压不知道,压什么不知道。 然后从条件下手。 条件1要求黑色在一起白色在一起,记录轮廓线很容易做到。 条件2要求不能出现$2*2$的同色方格。我们还需要再记录当前位置的左上角。 所以这道题的轮廓线长这样。 丑图。 我们需要确定一 阅读全文
posted @ 2019-01-07 16:00 LiGuanlin 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 一道极水的插头$dp$。 根本不需要左右括号分开看,直接都当作括号。 什么三进制四进制,二进制就可做。 讨论比模板要少。 (luogu丧心出题人有hack点。。。) 代码: 阅读全文
posted @ 2019-01-07 15:22 LiGuanlin 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 插头$dp$中经典的回路问题。 首先了解一下插头。 一个格子,上下左右四条边对应四个插头。就像这样: 四个插头。 一个完整的哈密顿回路,经过的格子一定用且仅用了两个插头。 所以所有被回路经过的格子有六种状态,即左上,左右,左下,上右,上下,右下。 这几个就是插头$dp$的基本。 然 阅读全文
posted @ 2019-01-07 15:06 LiGuanlin 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 给出一棵$n(n<=200000)$的树。每个点有一个权值$w$,表示堵上这个点的花费。 $m$组操作,操作一为将点$x$的权值加上一个非负整数$d$,操作二为询问以点$x$为根的子树内堵上所有根到叶节点路径的最小花费。 题解: 设$h[x]$为$x$的所有子节点的最小花费之和。 一眼看 阅读全文
posted @ 2019-01-04 10:19 LiGuanlin 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 一个看起来非常人畜无害的$dp$:$$f[i][k]=min(f[j][k]+cost(j,i))+c[i]$$ 中间那个$cost(j,i)$可以通过$cost(j,i-1)$得到,这个东西是动态的。 用线段树维护一下就好了。 代码: 阅读全文
posted @ 2019-01-04 10:09 LiGuanlin 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: $dp$。 有$$f[r[i]]=min(f[k]+1)$$。 然后用线段树优化转移就好了。 代码: 阅读全文
posted @ 2019-01-04 10:04 LiGuanlin 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 很明显总体路径可以是一直向左/向右,或者先向一个方向跑几步,然后反向跑。 所以我们可以得到四种基本运动方式: LGL:一直向左; RGR:一直向右; LGR:先向左,然后向右回到原点; RGL:先向右,然后向左回到原点。 然后决策单调,分治求解上面四个东西,最后合并出结果。 代码: 阅读全文
posted @ 2019-01-04 10:01 LiGuanlin 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 答案显然是$max((q-p)*(e-d))$ 依然先贪心。 对于工厂,我们倾向于$pi<pj,di<dj$的; 对于买家,我们倾向于$qi>qj,ei>ej$的。 于是将一定不是最优解的工厂和买家划掉。 然后我们发现这个东西是满足决策单调性的。 问我怎么证?画一个二维坐标系,然后 阅读全文
posted @ 2019-01-04 09:52 LiGuanlin 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 我们可以考虑这样一种情况,有一块$10*10$的土地,还有一块$1*1$的土地。 当然将$1*1$的土地合到$10*10$的土地中了。 所以我们可以先按土地$x$值从大到小排序,然后从前向后扫一边,只将不会被完全覆盖的放到处理的集合里。 这样就可以$dp$了。 有$$dp[i]=m 阅读全文
posted @ 2019-01-04 09:44 LiGuanlin 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 这是个多重背包,但是一般的复杂度是过不去这题的。 所以有二进制优化和单调队列优化。 二进制优化是将数量$n$化为多个数,而且这些数能表示出$1~n$中的任意数。 怎么保证? 想起二进制,我们可以将$n$分为$1+2+4+8+……+k$,$k$可以是任意数。 单调队列怎么优化? 我们 阅读全文
posted @ 2019-01-02 07:48 LiGuanlin 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 应该是个$dp$; $dp[i][j]$表示第$i$个人涂到第$j$块的最大收益。 推一下式子:$$dp[i][j]=max(dp[i-1][j],dp[i][j-1],dp[i-1][k]+(j-k)*p[i])$$ 对于最后面那个式子可以化一下:$$max(dp[i-1][k] 阅读全文
posted @ 2019-01-02 07:39 LiGuanlin 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 由于$p<=10$,我们可以暴力枚举覆盖频道状态为$s$的特殊点,每次跑一遍斯坦纳树, 最后合并,方程和斯坦纳树的状态合并方程几乎一样。 代码: 阅读全文
posted @ 2019-01-02 07:30 LiGuanlin 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 这道题是斯坦纳树的典型例题。 首先看一眼数据范围发现$10$的范围不状压对不起出题人,然后考虑转移。 设$f[i][j][s]$表示当前在点$(i,j)$,覆盖特殊节点状态为$s$的最小花费。 转移有: 1.$s$不变,此时有$f[i][j][s]=min(f[i'][j'][s] 阅读全文
posted @ 2019-01-02 07:24 LiGuanlin 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 看到网上几乎全是树套树, 我就写了个整体二分。 其中操作1,2,3一般整体二分都能做到。 对于前驱,我们只需要在线段树中多维护区间最大值即可; 对于后继…… 通通取反后再跑一遍查询前驱即可。 然后迷之卡空间。 最后迷之卡过。 代码: 阅读全文
posted @ 2018-12-31 09:52 LiGuanlin 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 修改=删除+插入。 具体实现时保证先删除后插入。 就是对于某一位状态为插入->删除->插入->删除->……->插入。 而不是插入->插入->删除->……->插入->删除。 不然这个无脑错误会让普通线段树挂掉的。 代码: 阅读全文
posted @ 2018-12-31 09:44 LiGuanlin 阅读(123) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 15 下一页