BZOJ 1001: [BeiJing2006]狼抓兔子
1001: [BeiJing2006]狼抓兔子
Time Limit: 15 Sec Memory Limit: 162 MB
Submit: 20029 Solved: 4957
[Submit][Status][Discuss]
Description

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
HINT
2015.4.16新加数据一组,可能会卡掉从前可以过的程序。
Source
分析:
这不就是最小割模型么...但是数据范围23333...然而居然跑过了...
还是看正解吧...平面图转对偶图...
我们从s到t连一条边增加一个区域S,无穷大的区域为T...然后有相邻边的区域连一条权值为边权值的边,ST不连边,此时S到T的最短路就是st的最小割...
代码:
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
//by NeighThorn
#define inf 0x3f3f3f3f
using namespace std;
const int maxn=+,maxm=+;
int n,m,S,T,ans,cnt,w[maxm],hd[maxn],to[maxm],nxt[maxm],vis[maxn],dis[maxn];
inline int spfa(void){
memset(dis,inf,sizeof(dis));
queue<int> q;q.push(S),vis[S]=,dis[S]=;
while(!q.empty()){
int top=q.front();q.pop();vis[top]=;
for(int i=hd[top];i!=-;i=nxt[i])
if(dis[to[i]]>dis[top]+w[i]){
dis[to[i]]=dis[top]+w[i];
if(!vis[to[i]])
vis[to[i]]=,q.push(to[i]);
}
}
return dis[T];
}
inline void add(int s,int x,int y){
w[cnt]=s;to[cnt]=y;nxt[cnt]=hd[x];hd[x]=cnt++;
w[cnt]=s;to[cnt]=x;nxt[cnt]=hd[y];hd[y]=cnt++;
}
signed main(void){
// freopen("in.txt","r",stdin);
memset(hd,-,sizeof(hd));
scanf("%d%d",&n,&m);S=,T=(n-)*(m-)*+;
if(n==){ans=inf;
for(int i=,x;i<m;i++)
scanf("%d",&x),ans=min(ans,x);
printf("%d\n",ans);return ;
}
else if(m==){ans=inf;
for(int i=,x;i<n;i++)
scanf("%d",&x),ans=min(ans,x);
printf("%d\n",ans);return ;
}
for(int i=;i<=n;i++)
for(int j=,x;j<m;j++){
scanf("%d",&x);
if(i==)
add(x,(j-)*+,T);
else if(i==n)
add(x,(i-)*(m-)*+j*,S);
else
add(x,(i-)*(m-)*+j*,(i-)*(m-)*+(j-)*+);
}
for(int i=;i<n;i++)
for(int j=,x;j<=m;j++){
scanf("%d",&x);
if(j==)
add(x,S,(i-)*(m-)*+);
else if(j==m)
add(x,T,i*(m-)*-);
else
add(x,(i-)*(m-)*+(j-)*+,(i-)*(m-)*+j*);
}
for(int i=;i<n;i++)
for(int j=,x;j<m;j++)
scanf("%d",&x),add(x,(i-)*(m-)*+(j-)*+,(i-)*(m-)*+(j-)*+);
printf("%d\n",spfa());
return ;
}
By NeighThorn
BZOJ 1001: [BeiJing2006]狼抓兔子的更多相关文章
- BZOJ 1001 [BeiJing2006] 狼抓兔子(平面图最大流)
题目大意 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的.而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: ...
- BZOJ 1001: [BeiJing2006]狼抓兔子【最大流/SPFA+最小割,多解】
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 23822 Solved: 6012[Submit][ ...
- BZOJ 1001 [BeiJing2006]狼抓兔子 (UVA 1376 Animal Run)
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 24727 Solved: 6276[Submit][ ...
- BZOJ 1001: [BeiJing2006]狼抓兔子(最短路)
平面图的最小割转化为对偶图的最短路(资料:两极相通——浅析最大最小定理在信息学竞赛中的应用) ,然后DIJKSTRA就OK了. ------------------------------------ ...
- BZOJ 1001: [BeiJing2006]狼抓兔子 最小割
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1001 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓 ...
- [bzoj 1001][Beijing2006]狼抓兔子 (最小割+对偶图+最短路)
Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一 ...
- 【刷题】BZOJ 1001 [BeiJing2006]狼抓兔子
Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个 ...
- bzoj 1001: [BeiJing2006]狼抓兔子 平面图最小割
平面图跑最大流 可以转换为其对偶图跑最短路 一个环对应一个割 找到最小环(即最短路)极为所求,注意辅助边的建立 加入读入优化 不过时间还是一般 估计是dij写的不好 大神勿喷~~~ /*** ...
- BZOJ 1001: [BeiJing2006]狼抓兔子(s-t平面图+最短路求最小割)
http://www.lydsy.com/JudgeOnline/problem.php?id=1001 题意: 思路:这道题目是最小割题目,但是吧你直接套用Dinic是会超时的. 这里有种很奇妙的做 ...
随机推荐
- 读书笔记--SQL必知必会08--使用函数处理数据
8.1 函数 每个DBMS都有特定的函数.事实上,只有少数的几个函数被所有主要DBMS同时支持. 实现同一功能的函数,在不同的DBMS中的名称和语法极有可能不同,也就是说SQL函数不可移植的. 可移植 ...
- 用SignalR 2.0开发客服系统[系列5:使用SignalR的中文简体语言包和其他技术点]
前言 交流群:195866844 目录: 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 用SignalR 2.0开发客服系统[系列2:实现聊天室] 用SignalR 2.0开发客服系统 ...
- ASP.NET Core 中文文档 第二章 指南(4.5)使用 SQL Server LocalDB
原文:Working with SQL Server LocalDB 作者:Rick Anderson 翻译: 魏美娟(初见) 校对: 孟帅洋(书缘).张硕(Apple).许登洋(Seay) Appl ...
- deb包的安装及dpkg命令小结
DPKG commands There are two actions, they are dpkg-query and dpkg-deb. Install a package # sudo dpkg ...
- Git同步原始仓库到Fork仓库中
前言 本文介绍的是Git同步原始仓库到Fork仓库示例教程,废话不多说,下面直接到实操部分. 这里以aspnetcore-doc-cn的github仓库为例,同步dev分支. 步骤 1.初始化本地仓库 ...
- iOS学习笔记——滚动视图(scrollView)
滚动视图:在根视图中添加UIScrollViewDelegate协议,声明一些对象属性 @interface BoViewController : UIViewController<UIScro ...
- The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory
The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory 这是由于项目里面的一些 ...
- 严重: Exception sending context initialized event to listener instance of class
问题描述:Exception sending context initialized event to listener instance of class org.springframework.w ...
- Servlet3.0的动态
动态的创建是为了简化配置文件的.对于我们创建的servlet,filter和listener后可以使用.这也是注解的另外一种替代方式. 动态的添加有两种,一种是基于ContextListener的,另 ...
- 《连载 | 物联网框架ServerSuperIO教程》- 11.实现设备(驱动)与设备(驱动)交互和级联控制。注:设备驱动模拟金三与普京的对话
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...