题目描述 有一个M * N的棋盘,有的格子是障碍.现在你要选择一些格子来放置一些士兵,一个格子里最多可以放置一个士兵,障碍格里不能放置士兵.我们称这些士兵占领了整个棋盘当满足第i行至少放置了Li个士兵, 第j列至少放置了Cj个士兵.现在你的任务是要求使用最少个数的士兵来占领整个棋盘. 输入输出格式 输入格式: 第一行两个数M, N, K分别表示棋盘的行数,列数以及士兵的个数. 第二行有M个数表示Li. 第三行有N个数表示Ci. 接下来有K行,每行两个数X, Y表示(X, Y)这个格子是障碍. 输…
[BZOJ1458][洛谷4311]士兵占领(网络流) 题面 BZOJ权限题,洛谷真好 Description 有一个M * N的棋盘,有的格子是障碍.现在你要选择一些格子来放置一些士兵,一个格子里最多可以放置一个士兵,障碍格里不能放置士兵.我们称这些士兵占领了整个棋盘当满足第i行至少放置了Li个士兵, 第j列至少放置了Cj个士兵.现在你的任务是要求使用最少个数的士兵来占领整个棋盘. Input 第一行两个数M, N, K分别表示棋盘的行数,列数以及障碍的个数. 第二行有M个数表示Li. 第三行…
原文链接http://www.cnblogs.com/zhouzhendong/p/8384699.html 题目传送门 - BZOJ1458 题意概括 有一个M * N的棋盘,有的格子是障碍.现在你要选择一些格子来放置一些士兵,一个格子里最多可以放置一个士兵,障碍格里不能放置士兵.我们称这些士兵占领了整个棋盘当满足第i行至少放置了Li个士兵, 第j列至少放置了Cj个士兵.现在你的任务是要求使用最少个数的士兵来占领整个棋盘. 题解 对于无解的判断很简单,首先暴力判一判. 然后首先假装全部填满,那…
先判无解 把整个棋盘都放上士兵, 只需求最多可以拿走多少个士兵即可.每一行看做一个点r(i), 每一列看做一个点c(i) S->r(i), c(i)->T 连边, 容量为可以拿走的最大士兵数 (i,j)不是障碍格:r(i)->c(j),容量+oo 最后答案为n*m-k-maxflow ---------------------------------------------------------------------- #include<bits/stdc++.h> us…
链接 https://www.lydsy.com/JudgeOnline/problem.php?id=1458 也可以去luogu 思路 想成倒着删去点,使得依旧满足覆盖!! 左边横,右边列,之间用点链接起来,流量1 S到i为之间总公共 最多去掉m-h[i]-L[i]个,i到T同理. 代码 #include <iostream> #include <queue> #include <cstdio> #include <cstring> const int…
题目描述 在一个划分成网格的操场上, n个士兵散乱地站在网格点上.由整数 坐标 (x,y) 表示.士兵们可以沿网格边上.下左右移动一步,但在同时刻任一网格点上只能有名士兵.按照军官的命令,们要整齐地列成个水平队列,即排成 队列,即排成 (x,y),(x+1,y), …,(x+n -1,y) .如何选择 x 和y的值才能使 士兵们以最少的总移动步数排成一列. 输入输出格式 输入格式: 文件的第 1 行是士兵数 n,1≤n≤10000 .接下来 n 行是士兵的初始位置, 每行 2 个整数 x 和y,…
P1251 餐巾 15通过 95提交 题目提供者该用户不存在 标签网络流贪心 难度提高+/省选- 提交该题 讨论 题解 记录 最新讨论 为什么我全部10个测试点都对… 题目描述 一个餐厅在相继的N天里,第i天需要Ri块餐巾(i=l,2,…,N).餐厅可以从三种途径获得餐巾. (1)购买新的餐巾,每块需p分: (2)把用过的餐巾送到快洗部,洗一块需m天,费用需f分(f<p).如m=l时,第一天送到快洗部的餐巾第二天就可以使用了,送慢洗的情况也如此. (3)把餐巾送到慢洗部,洗一块需n天(n>m)…
P1889 士兵站队 题目描述 在一个划分成网格的操场上, n个士兵散乱地站在网格点上.由整数 坐标 (x,y) 表示.士兵们可以沿网格边上.下左右移动一步,但在同时刻任一网格点上只能有名士兵.按照军官的命令,们要整齐地列成个水平队列,即排成 队列,即排成 (x,y),(x+1,y), …,(x+n -1,y) .如何选择 x 和y的值才能使 士兵们以最少的总移动步数排成一列. 输入输出格式 输入格式: 文件的第 1 行是士兵数 n,1≤n≤10000 .接下来 n 行是士兵的初始位置, 每行…
正解:网络流 解题报告: 传送门$QwQ$ 开始看感$jio$长得好像和太空飞行计划差不多的,,,然后仔细康康发现还有租操作,,, 按一般的套路碰到这样儿的一般就先按非特殊化的建图然后考虑怎么实现这个特殊化的功能嘛$QwQ$ 这题一样?考虑先还是给任务建一排点机器建一排点,然后$S$向任务连收益,机器向$T$连购买支出.然后考虑,本来任务和机器之间连的是$inf$,发现如果把流量改成租借支出就欧克了? 然后就做完辣! 然后$gql$就卡了$2h$的常,,, 说下几个点$QwQ$ 第一个是,在$b…
正解:网络流 解题报告: 传送门$QwQ$ 昂开始看到$jio$得,哇长得好像上一题嗷$QwQ$ 然后仔细康康数据范围,发现,哇好像要几万个点,,,显然就$GG$了 但感$jio$思路方向好对的亚子?就考虑怎么优化趴$QwQ$ 考虑到如果还没考虑好倒数第$i$道菜做啥就不用考虑倒数第$k+1$道?所以考虑动态加边,每次只有考虑完倒数第$k$道才做倒数第$k+1$道 所以动态加边就好$QwQ$? 就不详细港建图了$QwQ$和上题一样的嘛$QwQ$ $over$ #include<bits/stdc…
正解:网络流 解题报告: 传送门$QwQ$ 一个很妙的建图,,,说实话我麻油想到$QwQ$ 考虑对每个工人建$n$个点,表示这是他修的倒数第$i$辆车,就可以算出影响是$t\cdot i$,然后对每辆车和这$n\cdot m$个节点连边,跑个费用流就做完辣$QwQ$ 具体港下怎么建图$QwQ$? 就考虑建两排点,左侧是$n\cdot m$个点表示工人,右侧是$n$个点表示车.然后$S$和工人之间连流量为1费用为0的边,工人和车连流量为1费用为$t\cdot i$的边,车和$T$连流量为1费用为0…
正解:网络流 解题报告: 传送门$QwQ$ 题目大意其实就说有一个$n$个节点的有向完全图,然后部分边的方向已经给定了,要求确定所有边的方向使三元环数目有$max$.这里三元环的定义是说三条边的方向一致,即同为顺逆时针$QwQ$ 话说这种三元环问题通常就是考虑点的度数?考虑下如果是非三元环一定是有一个入度为2的点,考虑枚举这种点,那就有$as=\binom{n}{3}-\sum\binom{in_i}{2}=\frac{n(n-1)(n-2)}{6}-\sum\frac{in_i^2-in_i}…
正解:网络流 解题报告: 传送门$QwQ$ 恩先不考虑关于那个附加属性的限制,考虑这题怎么做? 首先这题从名字开始就让人忍不住联想起网络流24题里的那个最长不下降子序列?于是同样考虑预处理一个$f$呗 然后再一看,长得就很最小割嘛,于是拆点,能构成最长不下降子序列的之间就连权值为$inf$的边,$f_{i}=1$的点和$S$.$f_{i}=mxf$的点和$T$连权值为$inf$的边,拆开的点之间连权值为$b_{i}$的边.跑个最小割就好$QwQ$ 现在考虑怎么搞那个附加属性$QwQ$? $umm…
正解:网络流+对偶图 解题报告: 传送门$QwQ$ $umm$之前省选前集训的时候叶佬考过?然而这和我依然不会做有什么关系呢$kk$ 昂这题首先要两个结论?第一个是说每个位置的海拔一定是0/1,还一个是说0/1一定都是连通块$QwQ$ 瞎证下?$QwQ$. 结论一:若存在海拔大于1的点,下坡不变,上坡代价增加,显然改为1更优 若存在海拔在0到1之间的点,同样理由,发现改为0更优 结论二有点显然的亚子,,,懒得证了趴$QwQ$ 欧克然后现在这道题就变成一个最小割了? 但是$n$的范围是500,,,…
正解:网络流 解题报告: 传送门! 日常看不懂题系列,,,$QAQ$ 所以先放下题目大意趴$QwQ$,就说有个$p\cdot q$的矩阵,每个位置可以填一个$[1,R]$范围内的整数$a_{i,j}$,要求相邻格子之间差不超过$D$.求$\sum v_{i,j,a_{i,j}}$的$min$ 昂,先考虑如果没有$D$这个限制网络流怎么做鸭$QwQ$.就一个,比较显然的最小割,对每个位置$(i,j)$开一行点连起来,第$k$个点和第$k+1$个点之间的流量为$v_{i,j,k+1}$,切开就表示这…
Code: #include<cstdio> #include<algorithm> #include<vector> #include<queue> #include<cstring> using namespace std; const int maxn=1004; const int INF=10000000; # define pb push_back int s,t; struct Edge{ int from,to,cap; Edge…
题目描述 如题,给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用. 输入格式 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点序号.汇点序号. 接下来M行每行包含四个正整数ui.vi.wi.fi,表示第i条有向边从ui出发,到达vi,边权为wi(即该边最大流量为wi),单位流量的费用为fi. 输出格式 一行,包含两个整数,依次为最大流量和在最大流量情况下的最小费用. 输入输出样例 输入 #1 4 5 4 3…
洛谷题目传送门 了解网络流和dinic算法请点这里(感谢SYCstudio) 题目 题目背景 这本是一个非常简单的问题,然而奶牛们由于下雨已经非常混乱,无法完成这一计算,于是这个任务就交给了你.(奶牛混乱的原因看题目描述) 题目描述 在一个农场里有n块田地.某天下午,有一群牛在田地里吃草,他们分散在农场的诸多田地上,农场由m条无向的路连接,每条路有不同的长度. 突然,天降大雨,奶牛们非常混乱,想要快点去躲雨.已知每个田地都建立有一个牛棚,但是每个牛棚只能容纳一定数量的牛躲雨,如果超过这个数量,那…
洛谷题目传送门 题目 题目描述 曾经有一款流行的游戏,叫做 Infinity Loop,先来简单的介绍一下这个游戏: 游戏在一个 n ∗ m 的网格状棋盘上进行,其中有些小方格中会有水管,水管可能在格子某些方向的边界的中点有接口,所有水管的粗细都相同,所以如果两个相邻方格的共边界的中点都有接头,那么可以看作这两个接头互相连接.水管有以下 15 种形状: 游戏开始时,棋盘中水管可能存在漏水的地方. 形式化地:如果存在某个接头,没有和其它接头相连接,那么它就是一个漏水的地方. 玩家可以进行一种操作:…
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - CodeVS1904 题目传送门 - 洛谷2764 题意概括 给出一个有向无环图,现在请你求一些路径,这些路径覆盖且仅覆盖所有的点一次. 现在让你求最少要几条路径. CodeVS1904 - 只需要输出几条边 洛谷2764 - 先输出路径,再输出几条.(但是截止2017-08-11,还没有SPJ) 题解 话说我这一题一开始在洛谷做,由于没有SPJ,多次爆零,据说在洛谷的那个数据只有网络流可以做?匈牙利挂了(…
Description 有一个M * N的棋盘,有的格子是障碍.现在你要选择一些格子来放置一些士兵,一个格子里最多可以放置一个士兵,障碍格里不能放置士兵.我们称这些士兵占领了整个棋盘当满足第i行至少放置了Li个士兵, 第j列至少放置了Cj个士兵.现在你的任务是要求使用最少个数的士兵来占领整个棋盘. Input 第一行两个数M, N, K分别表示棋盘的行数,列数以及障碍的个数. 第二行有M个数表示Li. 第三行有N个数表示Ci. 接下来有K行,每行两个数X, Y表示(X, Y)这个格子是障碍. O…
洛谷题目传送门 说不定比官方sol里的某理论最优算法还优秀一点? 所以\(n,m\)说不定可以出到\(1000\)? 无所谓啦,反正是个得分题.Orz良心出题人,暴力有70分2333 思路分析 正解的思路很巧妙,其实我并不觉得这是个正儿八经的网络流或者二分图匹配的题目,主要还是个思维+建图模型+乱搞...... \(C=1\)时我们就可以对于每个人直接匹配而不会影响到后面的选择了.但是\(C>1\)的话,可能某一个人可以选多个导师,当他随便选了其中一个以后,可能影响到后面某个人使其选不到本来的最…
[BZOJ1458]士兵占领 Description 有一个M * N的棋盘,有的格子是障碍.现在你要选择一些格子来放置一些士兵,一个格子里最多可以放置一个士兵,障碍格里不能放置士兵.我们称这些士兵占领了整个棋盘当满足第i行至少放置了Li个士兵, 第j列至少放置了Cj个士兵.现在你的任务是要求使用最少个数的士兵来占领整个棋盘. Input 第一行两个数M, N, K分别表示棋盘的行数,列数以及障碍的个数. 第二行有M个数表示Li. 第三行有N个数表示Ci. 接下来有K行,每行两个数X, Y表示(…
洛谷 P2754 题目背景 none! 题目描述 由于人类对自然资源的消耗,人们意识到大约在 2300 年之后,地球就不能再居住了.于是在月球上建立了新的绿地,以便在需要时移民.令人意想不到的是,2177 年冬由于未知的原因,地球环境发生了连锁崩溃,人类必须在最短的时间内迁往月球.现有 n 个太空站位于地球与月球之间,且有 m 艘公共交通太空船在其间来回穿梭.每个太空站可容纳无限多的人,而每艘太空船 i 只可容纳 H[i]个人.每艘太空船将周期性地停靠一系列的太空站,例如:(1,3,4)表示该太…
题目描述 有一个M * N的棋盘,有的格子是障碍.现在你要选择一些格子来放置一些士兵,一个格子里最多可以放置一个士兵,障碍格里不能放置士兵.我们称这些士兵占领了整个棋盘当满足第i行至少放置了Li个士兵, 第j列至少放置了Cj个士兵.现在你的任务是要求使用最少个数的士兵来占领整个棋盘. 输入 第一行两个数M, N, K分别表示棋盘的行数,列数以及障碍的个数. 第二行有M个数表示Li. 第三行有N个数表示Ci. 接下来有K行,每行两个数X, Y表示(X, Y)这个格子是障碍. 输出 输出一个数表示最…
题目: 洛谷 2304 LOJ 2134 (LOJ 上每个测试点有部分分) 写了快一天 -- 好菜啊 分析: 毒瘤二合一题 -- 注意本题(及本文)使用 \(x\) 向右,\(y\) 向上的「数学坐标系」,而不是 \(x\) 向下,\(y\) 向右的所谓「OI 坐标系」.「同一行」指 \(y\) 相同,「同一列」指 \(x\) 相同. 老司机 注意,只能在 没有经过的 树下转向,并且每棵树只能访问一次. 第一反应是 \(f_{u}\) 表示从点 \(u\) (树 \(u\) )出发能走到的最多的…
题目描述 有一个M * N的棋盘,有的格子是障碍.现在你要选择一些格子来放置一些士兵,一个格子里最多可以放置一个士兵,障碍格里不能放置士兵.我们称这些士兵占领了整个棋盘当满足第i行至少放置了Li个士兵, 第j列至少放置了Cj个士兵.现在你的任务是要求使用最少个数的士兵来占领整个棋盘. 输入输出格式 输入格式: 第一行两个数M, N, K分别表示棋盘的行数,列数以及士兵的个数. 第二行有M个数表示Li. 第三行有N个数表示Ci. 接下来有K行,每行两个数X, Y表示(X, Y)这个格子是障碍. 输…
正解:网络流 解题报告: 传送门$QwQ$ 昂第一问跑个最大流就成不说$QwQ$ 然后第二问,首先原来剩下的边就成了费用为0的边?然后原来的所有边连接的两点都给加上流量为$inf$费用为$w$的边,保证流量等于$k$就给$S$向一号节点连流量为$k$费用为0的边就好,,, 感$jio$这题有点儿简单,,,所以为什么是紫昂洛谷评分好迷昂$QwQ$ #include<bits/stdc++.h> using namespace std; #define il inline #define gc g…
正解:网络流+对偶图 解题报告: 传送门! $umm$日常看不懂题系列了$kk$.其实就是说,给定一个$n\cdot n$的网格图,求最小割$QwQ$ 然后网格图的话显然是个平面图,又看到数据范围$n\leq 1000$,显然就考虑平面图转对偶图呗 然后好像就没有什么细节了,,,? 对了,$bzoj$上的话要特判1,洛谷上没有这个数据就不用辣$QwQ$ $QwQ$ (在$bzoj$上$T$了,,,应该是常数的问题懒得改了$QAQ$ #include<bits/stdc++.h> using n…
洛谷AC传送门! step1: 题目大意 有一张M x N的网格图,有一些点为“ * ”可以走,有一些点为“ x ”不能走,每走一步你都可以移动R * C 个格子(参考象棋中马的走法),且不能回头,已经走过的点不能再被走第二次. 每次,你可以从任意“ * ”能走的点出发,求至少要多少次才能走完所有的能走的点. step2: 题意翻译 ​ 那么题意便可以转化为: 一条路径可以看做从任意一个没有到达过的可通过的点出发到任意一个其他的可以通过却没有被到达过的点的一条路径, 要使每个点都被经过, 并且每…