BZOJ1001: [BeiJing2006]狼抓兔子 (最小割转最短路)

#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
#define pa pair<int,int>
int n,m,s,t;
struct node{
int y;
int next;
int v;
}e[];
int head[]={},tot=,dis[]={};
bool vis[]={};
priority_queue< pa, vector< pa >, greater< pa > >q;
inline void init(int x,int y,int v){
e[++tot].y=y;
e[tot].next=head[x];
e[tot].v=v;
head[x]=tot;
}
inline int ge(int x,int y,int k){//x行,y列,在斜线的左(1)右(2);返回格子的编号
return *(x-)*(m-)+*(y-)+k;
}
/*
事实上如果按照从上到下从左到右来编号,在输入时的块编号是有规律的;
不一定要像上面一样这样找格子编号;
*/
void doit(){
memset(dis,,sizeof(dis));
int x,y;
dis[s]=;
q.push(make_pair(,s));
while(!q.empty()){
x=q.top().second;
q.pop();
if(vis[x]){
continue;
}
vis[x]=;
for(int i=head[x];i;i=e[i].next){
y=e[i].y;
if(dis[y]>dis[x]+e[i].v){
dis[y]=dis[x]+e[i].v;
vis[y]=;
q.push(make_pair(dis[y],e[i].y));
}
}
}
}
int main(){
scanf("%d%d",&n,&m);
int v;
t=(m-)*(n-)*+;
s=t-;
for(int i=;i<=n;i++){
for(int j=;j<m;j++){
scanf("%d",&v);
if(i==){
init(s,*j,v);
init(*j,s,v);
}else if(i==n){
init(ge(n-,j,),t,v);
init(t,ge(n-,j,),v);
}else{
init(ge(i-,j,),ge(i,j,),v);
init(ge(i,j,),ge(i-,j,),v);
}
}
}
for(int i=;i<n;i++){
for(int j=;j<=m;j++){
scanf("%d",&v);
if(j==){
init(t,ge(i,,),v);
init(ge(i,,),t,v);
}else if(j==m){
init(ge(i,m-,),s,v);
init(s,ge(i,m-,),v);
}else{
init(ge(i,j-,),ge(i,j,),v);
init(ge(i,j,),ge(i,j-,),v);
}
}
}
for(int i=;i<n;i++){
for(int j=;j<m;j++){
scanf("%d",&v);
init(ge(i,j,),ge(i,j,),v);
init(ge(i,j,),ge(i,j,),v);
}
}
doit();
printf("%d\n",dis[t]);
return ;
}
BZOJ1001: [BeiJing2006]狼抓兔子 (最小割转最短路)的更多相关文章
- BZOJ1001 [BeiJing2006]狼抓兔子 最小割 对偶图 最短路
原文链接http://www.cnblogs.com/zhouzhendong/p/8686871.html 题目传送门 - BZOJ1001 题意 长成上面那样的网格图求最小割. $n,m\leq ...
- BZOJ1001: [BeiJing2006]狼抓兔子 [最小割 | 对偶图+spfa]
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 19528 Solved: 4818[Submit][ ...
- bzoj1001: [BeiJing2006]狼抓兔子 -- 最小割
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MB Description 现在小朋友们最喜欢的"喜羊羊与灰太狼 ...
- BZOJ1001[BeiJing2006]狼抓兔子最小割網絡流
Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一 ...
- BZOJ1001[BeiJing2006]狼抓兔子——最小割
题目描述 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: ...
- 【bzoj1001】[BeiJing2006]狼抓兔子 最小割+对偶图+最短路
题目描述 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: ...
- [bzoj 1001][Beijing2006]狼抓兔子 (最小割+对偶图+最短路)
Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一 ...
- bzoj 1001 [BeiJing2006]狼抓兔子——最小割转最短路
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1001 #include<cstdio> #include<cstring& ...
- BZOJ 1001: [BeiJing2006]狼抓兔子 最小割
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1001 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓 ...
随机推荐
- CMDB概述(一)
浅谈ITIL TIL即IT基础架构库(Information Technology Infrastructure Library, ITIL,信息技术基础架构库)由英国政府部门CCTA(Central ...
- js布尔值转化
JavaScript 预期某个位置应该是布尔值,会将该位置上现有的值自动转为布尔值.转换规则是除了下面六个值被转为false,其他值都视为true. undefined null false 0 Na ...
- 可能是是最全的Springboot基础视频分享,告别无视频可学
一头扎进SpringBoot视频教程 SpringBoot入门 2017年-张志君老师-SpringBoot(新增) 欢迎关注我的微信公众号:"Java面试通关手册" 回复关键字& ...
- oracle查看表中数据的大小
通过从视图 user_segments的字段 bytes中找到 select SUM(bytes)/1024/1024 from user_segments where segment_name='E ...
- Linux系统调用、新增系统调用方法【转】
转自:http://blog.chinaunix.net/uid-25374603-id-3401045.html 说明: 系统调用是内核和应用程序间的接口,应用程序要访问硬件设备和其他操作系统资源, ...
- 关于SQLite3 编译及交叉编译的一些问题
from : http://blog.sina.com.cn/s/blog_5f2e119b0101ibwn.html SQLite3 (http://www.sqlite.org)是一个非常强大的小 ...
- android的wake_lock介绍
Wake Lock是一种锁的机制, 只要有人拿着这个锁,系统就无法进入休眠, 可以被用户态程序和内核获得. 这个锁可以是有超时的或者是没有超时的, 超时的锁会在时间过去以后自动解锁. 如果没有锁了或者 ...
- 在Perl中使用Getopt::Long模块来接收用户命令行参数
我们在linux常常用到一个程序需要加入参数,现在了解一下perl中的有关控制参数的函数.getopt.在linux有的参数有二种形式.一种是–help,另一种是-h.也就是-和–的分别.–表示完整参 ...
- elk系列5之syslog的模块使用【转】
preface rsyslog是CentOs系统自带的的一个日志工具,那么我们就配置logstash来接受rsyslog的日志. logstash的syslog模块 linux-node2上操作log ...
- python selenium登陆网易云音乐
from selenium import webdriver import time driver=webdriver.Chrome() driver.get("http://music.1 ...