BZOJ_2001_[BeiJing2006]狼抓兔子_最小割转对偶图
BZOJ_2001_[BeiJing2006]狼抓兔子
题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1001
分析:思路同NOI2010海拔。
注意无向图。
代码:
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <queue>
using namespace std;
#define S (0)
#define T ((n-1)*(m-1)*2+1)
#define H (2*m-2)
priority_queue < pair<int,int> > q;
#define N 3000200
int head[N],nxt[N*10],to[N*10],val[N*10],cnt,n,m;
int dis[N],vis[N];
inline void add(int u,int v,int w){
to[++cnt]=v;nxt[cnt]=head[u];head[u]=cnt;val[cnt]=w;
to[++cnt]=u;nxt[cnt]=head[v];head[v]=cnt;val[cnt]=w;
}
int main(){
scanf("%d%d",&n,&m);
int x;
if(n==1||m==1){
int ans=1<<30;
if(n>m)swap(n,m);
for(int i=1;i<m;i++){
scanf("%d",&x);
ans=min(ans,x);
}
printf("%d",ans);return 0;
}
for(int i=1;i<=n;i++){
for(int j=1;j<m;j++){
scanf("%d",&x);
if(i==1)add(S,2*j,x);
else if(i<n)add((i-2)*H+2*j-1,(i-1)*H+2*j,x);
else add((i-2)*H+2*j-1,T,x);
}
}
for(int i=1;i<n;i++){
for(int j=1;j<=m;j++){
scanf("%d",&x);
if(j==1)add((i-1)*H+1,T,x);
else if(j<m)add((i-1)*H+2*j-1,(i-1)*H+2*j-2,x);
else add(S,(i-1)*H+2*j-2,x);
}
}
for(int i=1;i<n;i++){
for(int j=1;j<m;j++){
scanf("%d",&x);
add((i-1)*H+2*j,(i-1)*H+2*j-1,x);
}
}
memset(dis,0x3f,sizeof(dis));
dis[S]=0;
q.push(make_pair(dis[S],S));
while(!q.empty()){
int x=q.top().second;q.pop();
if(vis[x])continue;
vis[x]=1;
for(int i=head[x];i;i=nxt[i]){
if(dis[to[i]]>dis[x]+val[i]){
dis[to[i]]=dis[x]+val[i];
q.push(make_pair(-dis[to[i]],to[i]));
}
}
}
printf("%d",dis[T]);
}

BZOJ_2001_[BeiJing2006]狼抓兔子_最小割转对偶图的更多相关文章
- [BZOJ1001][BeiJing2006]狼抓兔子(最小割转最短路|平面图转对偶图)
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 31805 Solved: 8494[Submit][ ...
- BZOJ1001/LG4001 「ICPC Beijing2006」狼抓兔子 平面图最小割转对偶图最短路
问题描述 BZOJ1001 LG4001 题解 平面图最小割=对偶图最短路 假设起点和终点间有和其他边都不相交的一条虚边. 如图,平面图的若干条边将一个平面划分为若干个图形,每个图形就是对偶图中的一个 ...
- 【BZOJ】1001: [BeiJing2006]狼抓兔子(最小割 / 对偶图)
题目 传送门:QWQ 分析 显然答案是最小割. 然后dinic卡一卡过去了. 其实是懒得写转对偶图:正解 (dinic原来写的是vector,后来改的比较鬼畜 代码 #include <bits ...
- BZOJ 1001:[BeiJing2006]狼抓兔子(最小割)
http://www.lydsy.com/JudgeOnline/problem.php?id=1001 题意:中文. 思路:很明显是最小割,转化为最大流做.一开始看那么多点,但还是试了一下,居然过了 ...
- bzoj 1001: [BeiJing2006]狼抓兔子 平面图最小割
平面图跑最大流 可以转换为其对偶图跑最短路 一个环对应一个割 找到最小环(即最短路)极为所求,注意辅助边的建立 加入读入优化 不过时间还是一般 估计是dij写的不好 大神勿喷~~~ /*** ...
- 2021.12.02 P4001 [ICPC-Beijing 2006]狼抓兔子(最小割)
2021.12.02 P4001 [ICPC-Beijing 2006]狼抓兔子(最小割) https://www.luogu.com.cn/problem/P4001 题意: 把图分成两部分需要的最 ...
- 【BZOJ】1001: [BeiJing2006]狼抓兔子 Dinic算法求解平面图对偶图-最小割
1001: [BeiJing2006]狼抓兔子 Description 左上角点为(1,1),右下角点为(N,M)(上图中N=4,M=5).有以下 三种类型的道路 1:(x,y)<==>( ...
- BZOJ-1001 狼抓兔子 (最小割-最大流)平面图转对偶图+SPFA
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MB Submit: 14686 Solved: 3513 [Submit][ ...
- BZOJ1001:狼抓兔子(最小割最大流+vector模板)
1001: [BeiJing2006]狼抓兔子 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨, ...
随机推荐
- edit distance(编辑距离,两个字符串之间相似性的问题)
Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2 ...
- 《深入理解Java虚拟机》读书笔记3--垃圾回收算法
转载:http://blog.csdn.net/tjiyu/article/details/53983064 下面先来了解Java虚拟机垃圾回收的几种常见算法:标记-清除算法.复制算法.标记-整理算法 ...
- eclipse工程当中的.classpath 和.project文件什么作用?
.project是项目文件,项目的结构都在其中定义,比如lib的位置,src的位置,classes的位置.classpath的位置定义了你这个项目在编译时所使用的$CLASSPATH .classpa ...
- 中国的UED们
UED网址导航:http://www.ux265.com/ 天猫UED:http://ued.tmall.com/ 一淘UED:http://ux.etao.com/ 淘宝UED:http://ued ...
- Opencv3.1+python2.7的CentOS7安装
http://blog.csdn.NET/daunxx/article/details/50506625 转载注释:有些包名和系统包名并不匹配,yum install 找不到的时候,可以yum sea ...
- Java在线考试系统(含源码)
本文demo下载和视频教学观看地址:http://www.wisdomdd.cn/Wisdom/resource/articleDetail.htm?resourceId=1076 本实例介绍了在线考 ...
- C语言实现输出一组数字中的所有奇数
/*第二题*/ #include<stdio.h> //输入186732468 //输出173 //输入12345677 //输出13577 main(){ ;//输入的数字,数字的长度 ...
- 使用ADO.NET操作数据库
如有转载的请注明出处!蟹蟹 1.1使用对象连接OLE DB 数据源 OLE DB 数据源包含具有OLE DB 驱动程序的任何数据源,如SQL Server.Access.Excel.Oracle等. ...
- 0511JS流程练习
一.输入三个数,判断大小 var one = prompt("请输入第一个数"); var two = prompt("请输入第二个数"); var three ...
- MySql的下载和安装(解压版)
工具/原料 windows系统 一.Mysql的下载 打开浏览器,输入mysql,点击百度搜索,得到搜索结果. 在搜索结果中,选择下面结果,因为浏览器的不同,Mysql官网在搜索结果的 ...