ICPC-Beijing 2006 狼抓兔子
题解:
裸的最小割。
但是最大流跑不过去怎么办?
转变一下,既然最大流是一条左下<->右上的通路,我们可以把图划分为若干区域,
最后找左下到右上的最短路就行了。
代码:
- #include<queue>
- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- using namespace std;
- typedef long long ll;
- const int N = ;
- template<typename T>
- inline void read(T&x)
- {
- T f = ,c = ;char ch=getchar();
- while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
- while(ch>=''&&ch<=''){c=c*+ch-'';ch=getchar();}
- x = f*c;
- }
- int n,m,s,t,hed[*N*N],cnt;
- int _id(int i, int j, int k) {
- if(i>n||j<)return ;
- if(i<||j>m)return n*m<<|;
- return (i - ) * m + j + k * n * m;
- }
- struct EG
- {
- int to,nxt;
- ll w;
- }e[*N*N];
- void ae(int f,int t,ll w)
- {
- e[++cnt].to = t;
- e[cnt].nxt = hed[f];
- e[cnt].w = w;
- hed[f] = cnt;
- }
- struct Pair
- {
- int x;
- ll d;
- Pair(){}
- Pair(int x,ll d):x(x),d(d){}
- friend bool operator < (Pair a,Pair b){return a.d>b.d;}
- }tp;
- ll dis[*N*N];
- bool vis[*N*N];
- void dij()
- {
- priority_queue<Pair>q;
- memset(dis,0x3f,sizeof(dis));dis[s]=;
- q.push(Pair(s,));
- while(!q.empty())
- {
- tp = q.top();
- q.pop();
- int u = tp.x;
- if(vis[u])continue;
- vis[u]=;
- for(int j=hed[u];j;j=e[j].nxt)
- {
- int to = e[j].to;
- if(dis[to]>dis[u]+e[j].w)
- {
- dis[to] = dis[u]+e[j].w;
- q.push(Pair(to,dis[to]));
- }
- }
- }
- }
- int main()
- {
- read(n),read(m);
- n--,m--;
- s = ,t = n*m<<|;
- for(int i=;i<=n+;i++)
- for(int w,j=;j<=m;j++)
- {
- read(w);
- ae(_id(i,j,),_id(i-,j,),w);
- ae(_id(i-,j,),_id(i,j,),w);
- }
- for(int i=;i<=n;i++)
- for(int w,j=;j<=m+;j++)
- {
- read(w);
- ae(_id(i,j,),_id(i,j-,),w);
- ae(_id(i,j-,),_id(i,j,),w);
- }
- for(int i=;i<=n;i++)
- for(int w,j=;j<=m;j++)
- {
- read(w);
- ae(_id(i,j,),_id(i,j,),w);
- ae(_id(i,j,),_id(i,j,),w);
- }
- dij();
- printf("%lld\n",dis[t]);
- return ;
- }
ICPC-Beijing 2006 狼抓兔子的更多相关文章
- P4001 [ICPC-Beijing 2006]狼抓兔子
题目地址:P4001 [ICPC-Beijing 2006]狼抓兔子 平面图 边与边只在顶点相交的图. 对偶图 对于一个平面图,都有其对应的对偶图. 平面图被划分出的每一个区域当作对偶图的一个点: 平 ...
- 2021.12.02 P4001 [ICPC-Beijing 2006]狼抓兔子(最小割)
2021.12.02 P4001 [ICPC-Beijing 2006]狼抓兔子(最小割) https://www.luogu.com.cn/problem/P4001 题意: 把图分成两部分需要的最 ...
- 洛谷 P4001 [ICPC-Beijing 2006]狼抓兔子
题目描述 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: ...
- 解题:BJOI 2006 狼抓兔子
题面 可以看出来是最小割,然后你就去求最大流了 这么大的范围就是让你用网络流卡的?咋想的啊=.=??? 建议还是老老实实用 平面图最小割等于其对偶图最短路 这个东西来做吧,虽然这个东西跑的也挺慢的,最 ...
- [BZOJ 2006] 狼抓兔子
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1001 [算法] 最小割 [代码] #include<bits/stdc++.h ...
- BZOJ1001/LG4001 「ICPC Beijing2006」狼抓兔子 平面图最小割转对偶图最短路
问题描述 BZOJ1001 LG4001 题解 平面图最小割=对偶图最短路 假设起点和终点间有和其他边都不相交的一条虚边. 如图,平面图的若干条边将一个平面划分为若干个图形,每个图形就是对偶图中的一个 ...
- 【洛谷4001】 [ICPC-Beijing 2006]狼抓兔子(最小割)
传送门 洛谷 Solution 直接跑最小割板子就好了. 代码实现 #include<stdio.h> #include<stdlib.h> #include<strin ...
- bzoj1001 [ICPC-Beijing 2006]狼抓兔子
我满心以为本题正解为最短路,结果到处都是最大流…… 几乎所有的都写了什么“对偶图”跑最短路,但我真的不知道什么叫做对偶图---------------------------------------- ...
- 洛谷$P4001\ [ICPC-Beijing 2006]$狼抓兔子 网络流+对偶图
正解:网络流+对偶图 解题报告: 传送门! $umm$日常看不懂题系列了$kk$.其实就是说,给定一个$n\cdot n$的网格图,求最小割$QwQ$ 然后网格图的话显然是个平面图,又看到数据范围$n ...
随机推荐
- thrift配置——windows客户端与linux服务端通信(C++)
windows客户端: 1.首先要安装boost库 下载源文件 2.安装boost之前先要安装python-3.4.0.amd64,很多地方没有说,弄了很久 3.运行bootstrap.bat 生成b ...
- Codeforces702C【二分】
题意: 给你几个城市,蜂窝塔量: 给出城市和塔的坐标可以重叠,非递减的方式给出: 输出最小的r,以至于所有的城市能被覆盖到: 思路: 目的就是要使每个城市覆盖到,那我对每个城市找离最近塔的距离,然后在 ...
- Codeforces Round #355 (Div. 2)C - Vanya and Label
啊啊啊啊啊啊啊,真的是智障了... 这种题目,没有必要纠结来源.只要知道它的结果的导致直接原因?反正这句话就我听的懂吧... ">>"/"&" ...
- spring boot eureka server
ServerApplication @EnableEurekaServer @SpringBootApplication public class ServerApplication { public ...
- python操作pymongo
import pymongo from bson import ObjectId mongo_client = pymongo.MongoClient(host="127.0.0.1&quo ...
- UWP 实现分享功能
一:需求 实现点击分享按钮,分享内容到微博,邮箱等.. like this 二:DataTransferManager 数据传输管理类 DataTransferManager dataTransfer ...
- Codeforces Round #544 (Div. 3) D. Zero Quantity Maximization
链接:https://codeforces.com/contest/1133/problem/D 题意: 给两个数组a,b. 同时ci = ai * d + bi. 找到一个d使c数组中的0最多. 求 ...
- HAL之定时器
一首先得对定时器的时钟与系统时钟的关系搞清楚,基本定时器的时钟来自APB1最大36MHZ.(定时器倍频值为1) 二 在STM32CubeMX中打开外设功能,时钟源选择内部:然后在配置定时器3中的参数设 ...
- Error: IO_ERROR : java.io.IOException: Error while connecting Oozie server. No of retries = 5. Exception = Connection refused (Connection refused)解决办法(图文详解)
不多说,直接上干货! 问题详情 解决办法 Copy/Paste oozie.services property tag set from oozie-default.xml to oozie-site ...
- mongoDB内置文档定义
在最近的设计数据库时,犯了一个低级的错误,就是设置内置文档是定义了错误了,导致数据取不出,去找了很多资料都无法解决.最后看了一了一下自己设置的model文件.配置错误,所以导致数据取不出了. 数据库时 ...