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是会超时的. 这里有种很奇妙的做 ...
随机推荐
- html5 canvas常用api总结(一)
1.监听浏览器加载事件. window.addEventListener("load",eventWindowLoaded,false); load事件在html页面加载结束时发生 ...
- 在DevExpress程序中使用条形码二维码控件,以及进行报表打印处理
在很多业务系统里面,越来越多涉及到条形码.二维码的应用了,不管在Web界面还是WInform界面都需要处理很多物料相关的操作,甚至很多企业为了减少录入错误操作,为每个设备进行条形码.二维码的标签,直接 ...
- 在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(五)
(五)注册Website Cloud 1 注册Website Cloud 添加Website Cloud 连接Website Cloud 注意, endpoint 是使用Management Se ...
- [问答] Firemonkey 控件继承后无法显示(空白)
提问:如下安装后的 TMyPanel 能在设计期时正常显示,但 TMyPanel2 在设计期时是白板,不能正常看到,为什么? TMyPanel = class(TPanel) end; TMyCust ...
- MySQL动态游标
通过(准备语句+视图+静态游标)实现 -- 建立测试表和数据 create table webuser (username varchar(10)); insert into webuser valu ...
- System.nanoTime与System.currentTimeMillis的理解与区别
System类代表系统,系统级的很多属性和控制方法都放置在该类的内部.该类位于java.lang包. 平时产生随机数时我们经常拿时间做种子,比如用System.currentTimeMillis的结果 ...
- px、dp和sp,这些单位有什么区别?
DP 这个是最常用但也最难理解的尺寸单位.它与“像素密度”密切相关,所以 首先我们解释一下什么是像素密度.假设有一部手机,屏幕的物理尺寸为1.5英寸x2英寸,屏幕分辨率为240x320,则我们可以计算 ...
- H5 本地存储一
localStorage(本地存储),可以长期存储数据,没有时间限制,一天,一年,两年甚至更长,数据都可以使用.sessionStorage(会话存储),只有在浏览器被关闭之前使用,创建另一个页面时同 ...
- SharePoint2016合规性策略中心
如何开启 1. 打开sp2016的管理中心,找到[应用程序]-[创建网站集],如下图: 创建完毕后,如下图: 2. 开启搜索服务并进行爬网,否则进行网站集配置的,无法搜索到网站集 打开管理中心的[管理 ...
- MSCRM CRM 获取PickList 字段值函数解决方案
表单中有很多picklist字段 不想写链接stringmap代码: 实体ID查询方法: SELECT ObjectTypeCode from Entity where name='实体名称' 调 ...