首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
P2046 [NOI2010]海拔 平面图转对偶图(最小割-》最短路)
】的更多相关文章
BZOJ2007 NOI2010 海拔 平面图转对偶图 最小割
题面太长啦,请诸位自行品尝—>海拔 分析: 这是我见过算法比较明显的最小割题目了,很明显对于某一条简单路径,海拔只会有一次变换. 而且我们要最终使变换海拔的边权值和最小. 我们发现变换海拔相当于将图割开,左上右下两个点分别属于两个不同的集合,那这就是一个很形象的最小割模型. 我们只需要平面图转转对偶图,将图中每个面变成点,连边跑最短路即可. 转换的细节可能有些麻烦,大家慢慢理解. 代码: #include<bits/stdc++.h> #define pi pair<int,int…
[NOI2010]海拔 平面图转对偶图 最小割
题解: 首先,我们不难猜到高度只有 $0$ 或 $1$ 两种可能,而且高度为 0 的地区组成一个联通块,高度为 1 的地区组成一个联通块.只有这样,人们所耗费的体力才是最小的.得出这个结论,题目就成了求平面图的最小割.由于最大流等于最小割,网络流的做法是显然的,不过数据过大,不加优化是很难通过的. 我们考虑将平面图转对偶图:我们知道平面图的最小割就等于对偶图的最短路.本题和 bzoj1002 狼抓兔子最显著的差别就是本题的边都是有向的,而狼抓兔子的边都是无向的.读者可以自己在草纸上画一画切割方案…
P2046 [NOI2010]海拔 平面图转对偶图(最小割-》最短路)
$ \color{#0066ff}{ 题目描述 }$ YT市是一个规划良好的城市,城市被东西向和南北向的主干道划分为n×n个区域.简单起见,可以将YT市看作 一个正方形,每一个区域也可看作一个正方形.从而,YT城市中包括(n+1)×(n+1)个交叉路口和2n×(n+1)条双向道路(简称道路),每条双向 道路连接主干道上两个相邻的交叉路口.下图为一张YT市的地图(n = 2),城市被划分为2×2个区域,包括3×3个交叉路口和12条双向道路. 小Z作为该市的市长,他根据统计信息得到了每天上班高峰期间…
[jzoj 6092] [GDOI2019模拟2019.3.30] 附耳而至 解题报告 (平面图转对偶图+最小割)
题目链接: https://jzoj.net/senior/#main/show/6092 题目: 知识点--平面图转对偶图 在求最小割的时候,我们可以把平面图转为对偶图,用最短路来求最小割,这样会比dinic更快,但只是只用于网格图 网格图(平面图),即满足可以画在平面,且任意两条边的交点只能是边的顶点的图 性质:一个联通的平面图有$n$个点,$m$条边,$f$个面,那么有$f=m-n+2$ 对于一个平面图,我们可以找到它的对偶图.做法是把每一个分割出来的面作为一个个顶点,两个面之间存在边并且…
BZOJ1001 狼抓兔子 平面图转对偶图 最小割
现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: 左上角点为(1,1),右下角点为(N,M)(上图中N=3,M=4).有以下三种类型的道路 1:(x,y)<==>(x+1,y) 2:(x,y)<==>(x,y+1) 3:(x,y)<==>(x+1,y+1) 道路上的权值表示这条路上最多能够通过的兔子数,道路是无向的. 左上角和右下角…
P2046 [NOI2010]海拔
题目链接 题意分析 首先一看就知道这是一道最小割 这里奉上最小割的代码 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<cstdlib> #include<string> #include<queue> #include<map> #include&l…
洛谷P2046 [NOI2010]海拔(最小割,平面图转对偶图)
传送门 不明白为什么大佬们一眼就看出这是最小割…… 所以总而言之这就是一个最小割我也不知道为什么 然后边数太多直接跑会炸,所以要把平面图转对偶图,然后跑一个最短路即可 至于建图……请看代码我实在无能为力 //minamoto #include<iostream> #include<cstdio> #include<cstring> #include<queue> using namespace std; #define getc() (p1==p2&…
Vijos1734 NOI2010 海拔 平面图最小割
建立平面图的对偶图,把最小割转化成最短路问题 Dijkstra算法堆优化 (被输入顺序搞WA了好几次T_T) #include <cstdio> #include <cstring> #include <algorithm> #include <queue> ; const int maxV=maxN*maxN; const int inf=0x3f3f3f3f; struct Edge { int to,next; int dist; void assig…
Luogu2046 NOI2010 海拔 平面图、最小割、最短路
传送门 首先一个不知道怎么证的结论:任意点的\(H\)只会是\(0\)或\(1\) 那么可以发现原题的本质就是一个最小割,左上角为\(S\),右下角为\(T\),被割开的两个部分就是\(H=0\)与\(H=1\)的部分 直接上Dinic似乎有90pts 然后可以发现原图是一个经典的平面图 于是将平面图最小割转化成对偶图最短路模型,然后堆优化Dijkstra即可. 关于平面图最小割转化为对偶图最短路可以看这个 #include<bits/stdc++.h> #define id(i , j) (…
洛谷$P2046\ [NOI2010]$海拔 网络流+对偶图
正解:网络流+对偶图 解题报告: 传送门$QwQ$ $umm$之前省选前集训的时候叶佬考过?然而这和我依然不会做有什么关系呢$kk$ 昂这题首先要两个结论?第一个是说每个位置的海拔一定是0/1,还一个是说0/1一定都是连通块$QwQ$ 瞎证下?$QwQ$. 结论一:若存在海拔大于1的点,下坡不变,上坡代价增加,显然改为1更优 若存在海拔在0到1之间的点,同样理由,发现改为0更优 结论二有点显然的亚子,,,懒得证了趴$QwQ$ 欧克然后现在这道题就变成一个最小割了? 但是$n$的范围是500,,,…