[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 版)
本文只是对接海康解码器的动态解码功能,即配置解码器大屏上指定的某个窗口去解某一路IP视频源. 1. 首先,定义所需的结构体与接口.海康SDK中包含的结构体与接口非常之多,在官方的例子中,实现了大部分的 ...
- bASE--Risk
//参考base-4.0.2.jar public class Risk implements Serializable //规则名public String ruleName; //规则包名publ ...
- python进行机器学习(五)之模型打分
一.画出模型的残差值分布情况 #!/usr/bin/python import pandas as pd import numpy as np import csv as csv import mat ...
- 浅谈Trigger(SimpleTrigger&CronTrigger)
1.Trigger是什么 Quartz中的触发器用来告诉调度程序作业什么时候触发,即Trigger对象是用来触发执行job的. 2.Quartz中的Trigger 3.触发器通用属性: JobK ...
- nsa工程式(fb.py): perl6调用并修改IP
use v6; if (@*ARGS != 1) {say 'Use:scan.p6 ip';exit;} my $check_ip = @*ARGS[0]; $check_ip = '<val ...
- Deep Learning基础--参数优化方法
1. 深度学习流程简介 1)一次性设置(One time setup) -激活函数(Activation functions) - 数据预处理(Data Preprocessing) ...
- 【codeforces85D】
去实验培训回来了……写个题先玩玩 这题给人一种平衡树的感觉 但是呢,实际上操作离线+离散化+线段树一样能做 #include<bits/stdc++.h> #define lson (o& ...
- JAVA常见的集合类
关系的介绍: Set(集):集合中的元素不按特定方式排序,并且没有重复对象.他的有些实现类能对集合中的对象按特定方式排序. List(列表):集合中的元素按索引位置排序,可以有重复对象,允许按照对象在 ...
- python的IDLE界面回退代码语句
Alt+P回退到IDLE中之前输入的代码语句 Alt+N可以移至下一个代码语句
- HTML5 一篇就够的中文教程
HTML5 是近十年来 Web 开发标准最巨大的飞跃.HTML5 并非仅仅用来表示 Web 内容,它将 Web 带入一个成熟的应用平台,在 HTML5 平台上,视频.音频.图象.动画,以及同电脑的交互 ...