题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1001

平面图最小割可以转化成最短路问题;

建图时看清楚题目的 input ...

代码如下:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
typedef long long ll;
int const xn=2e6+,xm=8e6+;
int n,m,hd[xn],ct,to[xm],nxt[xm],S,T;
ll w[xm],dis[xn],inf=1e17;
bool vis[xn];
struct N{
int id; ll d;
N(int i=,ll d=):id(i),d(d) {}
bool operator < (const N &y) const
{return d>y.d;}
};
priority_queue<N>q;
int rd()
{
int ret=,f=; char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=; ch=getchar();}
while(ch>=''&&ch<='')ret=ret*+ch-'',ch=getchar();
return f?ret:-ret;
}
void ade(int x,int y,ll z){to[++ct]=y; nxt[ct]=hd[x]; hd[x]=ct; w[ct]=z;}
void add(int x,int y,ll z){ade(x,y,z); ade(y,x,z);}
int id(int x,int y,int z){return ((x-)*(m-)+(y-))*++z;}//格子(x,y) 0\1
void dij()
{
for(int i=S;i<=T;i++)dis[i]=inf;
dis[S]=; q.push(N(S,));
while(q.size())
{
int x=q.top().id; q.pop();
if(vis[x])continue; vis[x]=;
for(int i=hd[x],u;i;i=nxt[i])
if(dis[u=to[i]]>dis[x]+w[i])
dis[u]=dis[x]+w[i],q.push(N(u,dis[u]));
}
}
int main()
{
n=rd(); m=rd(); S=; T=id(n-,m-,)+; ll x;
if(n<=||m<=)
{
if(n<=||m<=||(n==&&m==)){puts(""); return ;}
ll mn=inf;
if(n==) for(int i=;i<m;i++)x=rd(),mn=min(x,mn);
else if(m==) for(int i=;i<n;i++)x=rd(),mn=min(x,mn);
printf("%lld\n",mn); return ;
}
for(int j=;j<m;j++)x=rd(),add(T,id(,j,),x);
for(int i=;i<n;i++)
for(int j=;j<m;j++)x=rd(),add(id(i-,j,),id(i,j,),x);
for(int j=;j<m;j++)x=rd(),add(id(n-,j,),S,x); for(int i=;i<n;i++)
{
x=rd(); add(S,id(i,,),x);
for(int j=;j<m;j++)x=rd(),add(id(i,j-,),id(i,j,),x);
x=rd(); add(id(i,m-,),T,x);
} for(int i=;i<n;i++)
for(int j=;j<m;j++)x=rd(),add(id(i,j,),id(i,j,),x); dij();
printf("%lld\n",dis[T]);
return ;
}

bzoj 1001 狼抓兔子 —— 平面图最小割(最短路)的更多相关文章

  1. BZOJ1001/LG4001 「ICPC Beijing2006」狼抓兔子 平面图最小割转对偶图最短路

    问题描述 BZOJ1001 LG4001 题解 平面图最小割=对偶图最短路 假设起点和终点间有和其他边都不相交的一条虚边. 如图,平面图的若干条边将一个平面划分为若干个图形,每个图形就是对偶图中的一个 ...

  2. BZOJ1001 BJOI2006狼抓兔子(最小割+最短路)

    显然答案就是最小割.直接跑dinic也能过,不过显得不太靠谱. 考虑更正确的做法.作为一个平面图,如果要把他割成两半,那么显然可以用一条曲线覆盖且仅覆盖所有割边.于是我们把空白区域看成点,隔开他们的边 ...

  3. BZOJ 1001 狼抓兔子 平面图的最小割

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1001 题目大意: 见链接 思路: 求最小割,平面图的最小割等价于对偶图的最短路 直接建 ...

  4. bzoj 1001: [BeiJing2006]狼抓兔子 平面图最小割

    平面图跑最大流 可以转换为其对偶图跑最短路 一个环对应一个割  找到最小环(即最短路)极为所求,注意辅助边的建立 加入读入优化  不过时间还是一般  估计是dij写的不好   大神勿喷~~~ /*** ...

  5. 2021.12.02 P4001 [ICPC-Beijing 2006]狼抓兔子(最小割)

    2021.12.02 P4001 [ICPC-Beijing 2006]狼抓兔子(最小割) https://www.luogu.com.cn/problem/P4001 题意: 把图分成两部分需要的最 ...

  6. BZOJ 1001 狼抓兔子 (最小割转化成最短路)

    1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 27715  Solved: 7134[Submit][ ...

  7. BZOJ-1001 狼抓兔子 (最小割-最大流)平面图转对偶图+SPFA

    1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MB Submit: 14686 Solved: 3513 [Submit][ ...

  8. [BZOJ1001][BeiJing2006]狼抓兔子(最小割转最短路|平面图转对偶图)

    1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 31805  Solved: 8494[Submit][ ...

  9. BZOJ1001:狼抓兔子(最小割最大流+vector模板)

    1001: [BeiJing2006]狼抓兔子 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨, ...

随机推荐

  1. 广告 竞价排名 import Levenshtein as Le seqratio_res = Le.seqratio(chk_name_lsit, cmp_)

    pip install python-Levenshtein from openpyxl import Workbook import xlrd import time import Levensht ...

  2. 算法设计 mac 字符串 标识 n维度 2 3维度 字符串 标识值 特征值

    基向量

  3. Android 开发之深入理解安卓调试桥各种错误解决办法

    摘要: Android开发调试项目使用到安卓调试桥工具,Android Debug Bridge(ADB)位于sdk路径platform-tools文件夹,使用Android Studio或Eclip ...

  4. Tensorflow 初级教程(一)

    初步介绍 Google 于2011年推出人工深度学习系统——DistBelief.通过DistBelief,Google能够扫描数据中心数以千计的核心,并建立更大的神经网络.Google 的这个系统将 ...

  5. ABAP下载xml文件

    [转http://www.cnblogs.com/byfhd/archive/2007/08/17/859829.html] ************************************* ...

  6. 33_为应用添加多个Activity与参数传递

    1\ 2\ 3\ 4\ 2 3

  7. HTML 5 本地存储

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  8. [转]eclipse中的常用快捷键

    1.选中你要加注释的区域,用ctrl+shift+C 会加上//注释2.先把你要注释的东西选中,用shit+ctrl+/ 会加上注释3.要修改在eclispe中的命令的快捷键方式我们只需进入windo ...

  9. Android 4.4 U盘挂载【转】

    本文转载自:https://blog.csdn.net/mill_li/article/details/50134301 在Android4.4系统下,ES文件浏览器读取不到U盘,但是在设置-> ...

  10. springmvc的优化

    二.springmvc的工作机制 在容器初始化时会建立所有url和controller的对应关系,保存到Map<url,controller>中.tomcat启动时会通知spring初始化 ...