[bzoj1001]狼爪兔子[平面图的最小割等于其对偶图的最短路]
一定要仔细算内存,,,又少写一个零。。
#include <bits/stdc++.h> using namespace std; template<const int _n,const int _m>
struct Edge
{
struct Edge_base { int to,next,w; }e[_m]; int cnt,p[_n];
void insert(const int x,const int y,const int z)
{ e[++cnt].to=y; e[cnt].next=p[x]; e[cnt].w=z; p[x]=cnt; }
void clear() { cnt=,memset(p,,sizeof(p)); }
Edge() { clear(); } int start(const int x) { return p[x]; }
Edge_base& operator[](const int x) { return e[x]; }
}; int n,m,Dis[];
bool visited[];
Edge<,>e; void Dijkstra(const int S)
{
int i,t,temp;
typedef pair<int,int> PII;
priority_queue<PII,vector<PII>,greater<PII> >Q;
memset(Dis,0x3f,sizeof(Dis));
Dis[S]=;
Q.push(make_pair(,S));
while(!Q.empty())
{
t=Q.top().second;Q.pop();
if(visited[t])continue;
visited[t]=true;
for(i=e.start(t);i;i=e[i].next)
{
temp=e[i].to;
if(Dis[temp]>Dis[t]+e[i].w)
{
Dis[temp]=Dis[t]+e[i].w;
Q.push(make_pair(Dis[temp],temp));
}
}
}
return ;
} int Get(const int x,const int y,const int z)
{
if(x< || y>=m)return (n-)*(m-)*+;
if(x>=n || y<)return ;
return ((x-)*(m-)+y)<<|z;
} int main()
{
int i,j,x; scanf("%d%d",&n,&m); for(i=;i<=n;++i)
{
for(j=;j<m;++j)
{
scanf("%d",&x);
e.insert(Get(i,j,),Get(i-,j,),x);
e.insert(Get(i-,j,),Get(i,j,),x);
}
} for(i=;i<n;++i)
{
for(j=;j<=m;++j)
{
scanf("%d",&x);
e.insert(Get(i,j-,),Get(i,j,),x);
e.insert(Get(i,j,),Get(i,j-,),x);
}
} for(i=;i<n;++i)
{
for(j=;j<m;++j)
{
scanf("%d",&x);
e.insert(Get(i,j,),Get(i,j,),x);
e.insert(Get(i,j,),Get(i,j,),x);
}
} Dijkstra(); printf("%d\n",Dis[(n-)*(m-)*+]); return ;
}
[bzoj1001]狼爪兔子[平面图的最小割等于其对偶图的最短路]的更多相关文章
- BZOJ 1001 狼抓兔子 平面图的最小割
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1001 题目大意: 见链接 思路: 求最小割,平面图的最小割等价于对偶图的最短路 直接建 ...
- BZOJ_1001_狼抓兔子_(平面图求最小割+对偶图求最短路)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1001 1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec ...
- BZOJ 1001 狼抓兔子 (网络流最小割/平面图的对偶图的最短路)
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1001 算法讨论: 1.可以用最大流做,最大流等于最小割. 2.可以把这个图转化其对偶图,然 ...
- Luogu2046 NOI2010 海拔 平面图、最小割、最短路
传送门 首先一个不知道怎么证的结论:任意点的\(H\)只会是\(0\)或\(1\) 那么可以发现原题的本质就是一个最小割,左上角为\(S\),右下角为\(T\),被割开的两个部分就是\(H=0\)与\ ...
- BZOJ1001 BeiJing2006 狼抓兔子 【网络流-最小割】*
BZOJ1001 BeiJing2006 狼抓兔子 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较 ...
- bzoj 1001 原图最小割转化为对偶图最短路
题目大意: 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形 ...
- 【bzoi2006】【狼抓兔子】【最小割】
Description Source: Beijing2006 [BJOI2006] 八中OJ上本题链接:http://www.lydsy.com/JudgeOnline/problem.php?id ...
- 最小割&网络流应用
重要链接 基础部分链接 : 二分图 & 网络流初步 zzz大佬博客链接 : 网络流学习笔记 重点内容:最小割二元关系新解(lyd's ppt) 题目:网络流相关题目 lyd神犇课件链接 : 网 ...
- 【bzoj1001】【最短路】【对偶图】【最大流转最小割】狼抓兔子题解
[BZOJ1001]狼抓兔子 1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 18872 Solved ...
随机推荐
- 洛谷 P1037 产生数
题目描述 给出一个整数n(n<10^30)和k个变换规则(k≤15). 规则: 一位数可变换成另一个一位数: 规则的右部不能为零. 例如:n=234.有规则(k=2): 2->53-> ...
- base64编码上传图片java后台接收实例
原文地址:http://blog.csdn.net/tonyfreak/article/details/72522855 思路 前台传以data:image/jpeg;base64,开头的base64 ...
- 构造 Codeforces Round #107 (Div. 2) B. Phone Numbers
题目传送门 /* 构造:结构体排个序,写的有些啰嗦,主要想用用流,少些了判断条件WA好几次:( */ #include <cstdio> #include <algorithm> ...
- 题解报告:hdu 2612 Find a way(双bfs)
Problem Description Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. L ...
- Linux下磁盘分区、挂载、卸载操作记录
Linux下磁盘分区.挂载.卸载操作记录. 操作环境:CentOS release 6.5 (Final) Last :: from 118.230.194.76 [root@CentOS ~]# [ ...
- SpringMVC实现Action的两种方式以及与Struts2的区别
4.程序员写的Action可采用哪两种方式? 第一.实现Controller接口第二.继承自AbstractCommandController接口 5.springmvc与struts2的区别? 第一 ...
- mysql之命令行导入导出
命令介绍 mysqldump:导出命令,在系统”命令提示符“窗口直接使用,如果提示没有此命令(前提是已经安装成功mysql),在环境变量中的path添加mysql,即path=D:\xxx\mysql ...
- 2017-12-04HTML table布局
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- Selenium IDE的第一个测试用例——路漫长。。。
一周时间过去了,断断续续学习selenium也有几个小时了:今天细想一下学习效率不高的原因在哪,总结出以下几点: 1.求“进”心切——总想一步到位,搭建好环境,开始动手写用例. 2.学习深度不够——同 ...
- Loadrunner12 安装与卸载
卸载:http://www.51testing.com/html/21/303921-216608.html 安装包下载: loadrunner12安装包下载:链接:https://pan.baidu ...