随笔分类 -  图论 -- 网络流

摘要:【CF704D】Captain America(上下界网络流) 题面 "CF" "洛谷" 题解 如果没有限制,似乎就不用做了。。。因为我们只需要贪心的选择代价较小的颜色就行了。 那么我们不妨假设染红色的代价较小,即$r\le b$。 接下来把限制加进来,每个限制一定是限制了在某一行中染蓝色以及染红色 阅读全文
posted @ 2019-07-09 15:15 小蒟蒻yyb 阅读(562) 评论(0) 推荐(0) 编辑
摘要:【BZOJ4823】[CQOI2017]老C的方块(网络流) 题面 "BZOJ" 题解 首先还是给棋盘进行黑白染色,然后对于特殊边左右两侧的格子单独拎出来考虑。 为了和其他格子区分,我们把两侧的这两个格子染成灰色。 于是一个不合法的状态就是两个相邻的灰色点如果还和一个其他的点相连就是非法的。 我们先 阅读全文
posted @ 2019-07-09 10:24 小蒟蒻yyb 阅读(521) 评论(0) 推荐(0) 编辑
摘要:【UOJ 389】【UNR 3】白鸽(欧拉回路,费用流) 题面 "UOJ" 题解 首先第一问就是判断是否存在一条合法的欧拉回路,这个拿度数和连通性判断一下就行了。 第二问判断转的圈数,显然我们只需要考虑顺时针过一条从源点出发的射线的次数减去逆时针过的次数就好了。 于是我们就要在欧拉回路合法的基础上算 阅读全文
posted @ 2019-07-03 20:41 小蒟蒻yyb 阅读(462) 评论(0) 推荐(1) 编辑
摘要:【LOJ 3097】[SNOI2019]通信(费用流) 题面 "LOJ" 题解 暴力就直接连$O(n^2)$条边。 然后分治/主席树优化连边就行了。 ~~抄zsy代码,zsy代码是真的短~~ cpp include include include using namespace std; defin 阅读全文
posted @ 2019-04-29 15:22 小蒟蒻yyb 阅读(739) 评论(0) 推荐(1) 编辑
摘要:【BZOJ3996】[TJOI2015]线性代数(最小割) 题面 "BZOJ" "洛谷" 题解 首先把式子拆开,发现我们的答案式就是这个: $$\sum_{i=1}^n\sum_{j=1}^n B_{i,j}A_iA_j \sum_{i=1}^n A_iC_i$$ 发现$A$是$01$矩阵,再结合数 阅读全文
posted @ 2019-04-23 16:35 小蒟蒻yyb 阅读(257) 评论(0) 推荐(0) 编辑
摘要:【BZOJ4873】[六省联考2017]寿司餐厅(网络流) 题面 "BZOJ" "洛谷" 题解 很有意思的题目 首先看到答案的计算方法,就很明显的感觉到是一个最大权闭合子图。 然后只需要考虑怎么构图就行了。 首先把那个奇奇怪怪的什么$mx^2+cx$,首先$cx$可以拆到每个地方计算,然后$mx^2 阅读全文
posted @ 2019-03-27 22:34 小蒟蒻yyb 阅读(318) 评论(0) 推荐(1) 编辑
摘要:【Luogu3731】[HAOI2017]新型城市化(网络流,Tarjan) 题面 "洛谷" 给定一张反图,保证原图能分成不超过两个团,问有多少种加上一条边的方法,使得最大团的个数至少加上$1$。 题解 ~~本来并不会做的,看题解第一句话就会了QwQ~~ 对于在反图上没有边的点之间是存在一条边的。 阅读全文
posted @ 2019-03-24 22:08 小蒟蒻yyb 阅读(337) 评论(3) 推荐(0) 编辑
摘要:【BZOJ3716】[PA2014]Muzeum(贪心,网络流) 题面 "BZOJ" 题解 很明显可以写最大权闭合子图,然后会$TLE$成傻逼。 为了方便,就把一个警卫能够看到的范围处理一下(把坐标系处理一下),强制让他看到一个$90°$的夹角,再旋转一下就可以变成强制看到右下角的范围。 我们知道最 阅读全文
posted @ 2019-03-21 17:50 小蒟蒻yyb 阅读(350) 评论(0) 推荐(1) 编辑
摘要:【CF802C】Heidi and Library(网络流) 题面 "CF" "洛谷" 题解 ~~前面两个Easy和Medium都是什么鬼玩意啊。。。。~~ 不难发现如果这天的要求就是第$a_i$种书的话,那么$a_i$是必定要存在的。 把每种书拆$n$次,然后用每一个流维护一个书架上的位置,那么这 阅读全文
posted @ 2019-03-05 21:49 小蒟蒻yyb 阅读(333) 评论(0) 推荐(0) 编辑
摘要:【BZOJ2324】[ZJOI2011]营救皮卡丘(网络流,费用流) 题面 "BZOJ" "洛谷" 题解 如果考虑每个人走的路径,就会很麻烦。 转过来考虑每个人破坏的点集,这样子每个人可以得到一个上升的序列。 预处理$dis[u][v]$表示$u\rightarrow v$在不经过标号大于$max\ 阅读全文
posted @ 2019-03-05 17:05 小蒟蒻yyb 阅读(305) 评论(0) 推荐(0) 编辑
摘要:【BZOJ3691】游行(网络流) 题面 "BZOJ" 然而权限题。 Description 每年春季,在某岛屿上都会举行游行活动。 在这个岛屿上有N个城市,M条连接着城市的有向道路。 你要安排英雄们的巡游。英雄从城市si出发,经过若干个城市,到城市ti结束,需要特别注意的是,每个英雄的巡游的si可 阅读全文
posted @ 2019-03-05 15:50 小蒟蒻yyb 阅读(491) 评论(0) 推荐(0) 编辑
摘要:【BZOJ5316】[JSOI2018]绝地反击(网络流,计算几何,二分) 题面 "BZOJ" "洛谷" 题解 很明显需要二分一个答案。 那么每个点可以确定的范围就是以当前点为圆心,二分出来的答案为半径画一个圆,和目标的圆的交就是可行的区间。 首先我们不知道正$n$边形的转角,如果我们知道的话,可以 阅读全文
posted @ 2019-02-22 19:43 小蒟蒻yyb 阅读(608) 评论(0) 推荐(0) 编辑
摘要:【BZOJ2285】[SDOI2011]保密(分数规划,网络流) 题面 "BZOJ" "洛谷" 题解 首先先读懂题目到底在干什么。 发现要求的是一个比值的最小值,二分这个最小值$k$,把边权转换成$t sk$,其中$t$是时间,$s$是安全系数。那么通过一遍$SPFA$可以求出到达所有的目标点的危险 阅读全文
posted @ 2018-11-05 20:03 小蒟蒻yyb 阅读(280) 评论(0) 推荐(0) 编辑
摘要:【BZOJ2245】[SDOI2011]工作安排(费用流) 题面 "BZOJ" "洛谷" 题解 裸的费用流吧。 不需要拆点,只需要连边就好了,保证了$W_j include include include using namespace std; define ll long long define 阅读全文
posted @ 2018-11-02 15:21 小蒟蒻yyb 阅读(193) 评论(7) 推荐(0) 编辑
摘要:【BZOJ2229】[ZJOI2011]最小割(网络流,最小割树) 题面 "BZOJ" "洛谷" 题解 "戳这里" 那么实现过程就是任选两点跑最小割更新答案,然后把点集划分为和$S$联通以及与$T$联通。 然后再这两个点集里面分别任选两点跑最小割,递归下去即可。 cpp include includ 阅读全文
posted @ 2018-10-31 22:15 小蒟蒻yyb 阅读(303) 评论(0) 推荐(1) 编辑
摘要:【BZOJ2424】[HAOI2010]订货(费用流) 题面 "BZOJ" "洛谷" 题解 傻逼费用流吧、、、 一开始理解错意思了,仓库大小为$m$的含义是留到下个月最多为$m$,而不是任意时刻的容量不能超过$m$。 cpp include include include include using 阅读全文
posted @ 2018-10-29 22:48 小蒟蒻yyb 阅读(181) 评论(0) 推荐(0) 编辑
摘要:【BZOJ1822】[JSOI2010]冷冻波(二分,网络流) 题面 "BZOJ" "洛谷" 题解 先预处理每个巫妖可以打到哪些小精灵,然后二分答案,网络流判定即可。 阅读全文
posted @ 2018-10-22 16:26 小蒟蒻yyb 阅读(236) 评论(0) 推荐(0) 编辑
摘要:【BZOJ1797】[AHOI2009]最小割(网络流) 题面 "BZOJ" "洛谷" 题解 最小割的判定问题,这里就当做记结论吧。(源自$lun$的课件) 我们先跑一遍最小割,求出残量网络。然后把所有还有流量的边拿出来跑$Tarjan$缩$SCC$。 如果一条满流边的两个端点不在同一个$SCC$中 阅读全文
posted @ 2018-10-15 19:18 小蒟蒻yyb 阅读(341) 评论(0) 推荐(0) 编辑
摘要:【BZOJ1449】[JSOI2009]球队收益(网络流,费用流) 题面 "BZOJ" "洛谷" 题解 首先对于一支队伍而言,总共进行多少场比赛显然是已知的,假设是$n_i$场,那么它的贡献是:$C_ix^2+D_iy^2=C_ix^2+D_i(n_i x_i)^2=(C_i+D_i)x^2 2nD 阅读全文
posted @ 2018-10-09 21:58 小蒟蒻yyb 阅读(226) 评论(0) 推荐(0) 编辑
摘要:【Luogu1344】追查坏牛奶(最小割) 题面 "洛谷" 题解 裸的最小割,但是要求边的数量最小。 怎么办呢?给每条边的权值额外加上一个很大的值就了。 cpp include include include using namespace std; define ll long long defi 阅读全文
posted @ 2018-09-25 11:58 小蒟蒻yyb 阅读(208) 评论(1) 推荐(0) 编辑