[BZOJ1001](BeiJingOI 2006)狼抓兔子
Description Source: Beijing2006 [BJOI2006]
八中OJ上本题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1001
现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形:

Input
Output
Sample Input
5 6 4
4 3 1
7 5 3
5 6 7 8
8 7 6 5
5 5 5
6 6 6
Sample Output
【分析】
乍一看题,心想,bzoj似乎也不过如此啊,这不是最小割裸题吗?不要急,我们来看看数据范围……N,M均小于等于1000,而节点总数为MN……请告诉我比$O(VE)$ 更优的网络流怎么写= =
很快我们就可以发现,根据这道题目的特殊性,我们得到的是一张平面图。图论告诉我们,每张平面图都有与之相对应的对偶图,而原图的“割”与它的对偶图的”路径“一一对应(详见周冬的论文《两极相同——浅析最大最小定理在信息学竞赛中的应用》)。于是我们可以把网格中的点和面互换,再把从S到T的连线上下两侧分别拆成两个点,求这两个点之间的最短路即可。
(我的代码没有利用图的“边数有限”这一特点,还是用一个vector储存了邻接表,在有些OJ上可能会超时。

, c = getchar();
+ c - , INF = };
){
;i < M;++i)
;
){
;i < N;++i)
;
) * (M-) * ) + ;
* M - ;
;i < M;++i, k+=){
].pb(edge(k, t));
;i < N;++i){
;j < M;++j, k+=){
, k = To-*(M-)-;j < M;++j, k+=){
,k = ;i < N;++i){
,k+=;j < M;++j,k+=){
, t));
].pb(edge(k, t));
].pb(edge(k-, t));
, k = ;i < N;++i){
;j < M;++j, k += ){
, t));
].pb(edge(k, t));
;i <= To;++i)
;
};
);
vector<edge>::iterator it;
t = Q.front();Q.pop();inQ[t] = ;
dis[it->to] = dis[t] + it->w;
Q.push(it->to), inQ[it->to] = ;
}
}
printf( }
freopen(
work();
cout << endl << ( ;
}
平面图最小割转对偶图最短路
[BZOJ1001](BeiJingOI 2006)狼抓兔子的更多相关文章
- bzoj1001 [ICPC-Beijing 2006]狼抓兔子
我满心以为本题正解为最短路,结果到处都是最大流…… 几乎所有的都写了什么“对偶图”跑最短路,但我真的不知道什么叫做对偶图---------------------------------------- ...
- P4001 [ICPC-Beijing 2006]狼抓兔子
题目地址:P4001 [ICPC-Beijing 2006]狼抓兔子 平面图 边与边只在顶点相交的图. 对偶图 对于一个平面图,都有其对应的对偶图. 平面图被划分出的每一个区域当作对偶图的一个点: 平 ...
- 【BZOJ1001】[BeiJing2006]狼抓兔子 对偶图最短路
[BZOJ1001][BeiJing2006]狼抓兔子 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子 ...
- 2021.12.02 P4001 [ICPC-Beijing 2006]狼抓兔子(最小割)
2021.12.02 P4001 [ICPC-Beijing 2006]狼抓兔子(最小割) https://www.luogu.com.cn/problem/P4001 题意: 把图分成两部分需要的最 ...
- 【bzoj1001】【狼抓兔子】
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MB Submit: 12719 Solved: 3017 [Submit][ ...
- 洛谷 P4001 [ICPC-Beijing 2006]狼抓兔子
题目描述 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: ...
- 【bzoj1001】[BeiJing2006]狼抓兔子 最小割+对偶图+最短路
题目描述 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: ...
- 【bzoj1001】 BeiJing2006—狼抓兔子
http://www.lydsy.com/JudgeOnline/problem.php?id=1001 (题目链接) 题意 给出一张图,求最小割. Solution1 最小割=最大流,所以直接Din ...
- 【BZOJ1001】[BeiJing2006]狼抓兔子
挺简单一个题,最小割模板 我的感觉就是可能建图的时候会比较麻烦吧,毕竟三个方向. #include <cctype> #include <climits> #include & ...
- 解题:BJOI 2006 狼抓兔子
题面 可以看出来是最小割,然后你就去求最大流了 这么大的范围就是让你用网络流卡的?咋想的啊=.=??? 建议还是老老实实用 平面图最小割等于其对偶图最短路 这个东西来做吧,虽然这个东西跑的也挺慢的,最 ...
随机推荐
- Java多线程学习(三)volatile关键字
转载请备注地址:https://blog.csdn.net/qq_34337272/article/details/79680693 系列文章传送门: Java多线程学习(一)Java多线程入门 Ja ...
- Python模块学习 - pyinotify
pyinotify介绍 pyinotify模块用来监测文件系统的变化,依赖于Linux内核的inotify功能,inotify是一个事件驱动的通知器,其通知接口从内核空间到用户空间通过三个系统调用.p ...
- Django【进阶】数据库查询性能相关
之前项目中没有考虑过数据库查询关于效率的问题,如果请求量大,数据庞大,不考虑性能的话肯定不行. tips:如图之前我们遇到过,当添加一张表时,作为原来表的外键,要给个默认值,现在我们写null ...
- 自动化测试===requests+unittest+postman的接口测试
postman是一个跨平台的接口测试工具,下载链接在这里:https://www.getpostman.com/ unittest是一个单元测试框架,python中安装:pip install uni ...
- 手机端GPS定位结合百度地图实现定位
html页面: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Typ ...
- connect-falsh的用法
借鉴博客 http://yunkus.com/connect-flash-usage/
- Oracle11g常用的命令
cmd H: cd H:\oracle\product\\Db_1\BIN exp jz/jz file=C:/QS-BF20131017.dmp (备份) imp jz/jz file=C:/BF2 ...
- 配置文件中的mime-mapping元素(ofbiz/framework/catalina/config/mime-type)(
mime-mapping元素将mime类型映射到扩展名. extension元素用来描述扩展名.mime-type元素则为MIME类型. <?xml version="1.0" ...
- AC日记——自然数和分解 codevs 2549
自然数和分解 思路: 水题: 代码: #include <bits/stdc++.h> using namespace std; ][]; int main() { cin>> ...
- 【剑指offer】面试题 15. 二进制中 1 的个数
面试题 15. 二进制中 1 的个数 题目描述 题目:输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. Java 实现 方法一 public class Solution { // y ...