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]狼抓兔子_最小割转对偶图的更多相关文章

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

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

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

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

  3. 【BZOJ】1001: [BeiJing2006]狼抓兔子(最小割 / 对偶图)

    题目 传送门:QWQ 分析 显然答案是最小割. 然后dinic卡一卡过去了. 其实是懒得写转对偶图:正解 (dinic原来写的是vector,后来改的比较鬼畜 代码 #include <bits ...

  4. BZOJ 1001:[BeiJing2006]狼抓兔子(最小割)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1001 题意:中文. 思路:很明显是最小割,转化为最大流做.一开始看那么多点,但还是试了一下,居然过了 ...

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

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

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

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

  7. 【BZOJ】1001: [BeiJing2006]狼抓兔子 Dinic算法求解平面图对偶图-最小割

    1001: [BeiJing2006]狼抓兔子 Description 左上角点为(1,1),右下角点为(N,M)(上图中N=4,M=5).有以下 三种类型的道路 1:(x,y)<==>( ...

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

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

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

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

随机推荐

  1. ajax-------封装

    function ajax(url, fnSucc, fnFaild){ //1.创建Ajax对象 var oAjax=null; if(window.XMLHttpRequest) { oAjax= ...

  2. rsync的详细配置

    服务器配置: yum install rsync   安装rsync vi /etc/rsyncd.conf   创建主配置文件 pid file = /var/run/rsyncd.pid port ...

  3. log4j2.xml全配置文件

    可以参考如下配置 <?xml version="1.0" encoding="UTF-8"?> <!--日志级别以及优先级排序: OFF &g ...

  4. Ocelot中文文档-日志

    目前,Ocelot使用标准的日志记录接口ILoggerFactory/ILogger . 在IOcelotLogger / IOcelotLoggerFactory中提供了标准的asp.net cor ...

  5. C# 使用SmtpClient发送Email

    使用Winfrom写的报错信息发送邮件通知. 以下主要代码 /// <summary> /// 发送邮件核心代码 /// </summary> /// <param na ...

  6. Spring Cloud(十二):分布式链路跟踪 Sleuth 与 Zipkin【Finchley 版】

    Spring Cloud(十二):分布式链路跟踪 Sleuth 与 Zipkin[Finchley 版]  发表于 2018-04-24 |  随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请 ...

  7. Python_网络攻击之端口

    #绝大多数成功的网络攻击都是以端口扫描开始的,在网络安全和黑客领域,端口扫描是经常用到的技术,可以探测指定主机上是否 #开放了指定端口,进一步判断主机是否运行了某些重要的网络服务,最终判断是否存在潜在 ...

  8. Reflection的getCallerClass静态方法

    Reflection的getCallerClass的使用 博客分类: java基础   Reflection的getCallerClass的使用:可以得到调用者的类.这个方法是很好用的. 0 和小于0 ...

  9. Atlas的优缺点及测试结论

    优点 1,实现了读写分离(并通过hint/*master*/可强制走主库,并且加入了权重配置可进行读的负载均衡 2,自身维护了一套连接池,减少了创建连接带来的性能消耗 3,支持DB动态上下线,方便横向 ...

  10. 数据结构之ConcurrentHashMap

    并发编程实践中,ConcurrentHashMap是一个经常被使用的数据结构,相比于Hashtable以及Collections.synchronizedMap(),ConcurrentHashMap ...