[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 ...
随机推荐
- Spark之RDD的定义及五大特性
RDD是分布式内存的一个抽象概念,是一种高度受限的共享内存模型,即RDD是只读的记录分区的集合,能横跨集群所有节点并行计算,是一种基于工作集的应用抽象. RDD底层存储原理:其数据分布存储于多台机器上 ...
- goalng——time包学习
1.星期:type Weekday int const ( Sunday Weekday = iota Monday Tuesday Wednesday Thursday Friday Saturda ...
- ADSI和其他内容
ADSI (Active Directory Services Interface)是Microsoft推出的一项技术,它统一了许多底层服务的编程接口,程序员可以使用一致的对象技术来访问这些底层服务. ...
- SQL 索引篇
索引介绍: 1.索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息. 数据库索引好比是一本书前面的目录, SQL Server的B树结构 2.加快数据库的查询速 ...
- 有符号char转无符号short
; cout<<(int)ch<<endl; //-1 unsigned short d = ch; short dd = ch; cout<<d<<e ...
- Java 8 (9) Optional取代null
NullPointerException,大家应该都见过.这是Tony Hoare在设计ALGOL W语言时提出的null引用的想法,他的设计初衷是想通过编译器的自动检测机制,确保所有使用引用的地方都 ...
- php简易计算器
php循环结构 案例:php简易计算器 步骤: 1.先绘制这个表格 2.根据表单提交的sub属性判断一下,是否点击计算了 (GET方式提交的数据,通过地址栏传递的) 3.计算,并将结果输入到第二行 问 ...
- C++(extern关键字的理解和作用深入)
extern关键字的理解和作用深入 extern是一个关键字,它告诉编译器存在着一个变量或者一个函数,如果在当前编译语句的前面中没有找到相应的变量或者函数, 也会在当前文件的后面或者其它文件中定义 引 ...
- 02Oracle Database 安装,卸载,系统服务,系统组件及系统表空间
Oracle Database 安装,卸载,系统服务,系统组件及系统表空间 Oracle Database 安装 Oracle Database 卸载 Oracle Database 系统服务 Ora ...
- 05Servlet example
dgdfgdfggggggg Servlet 表单数据 在客户端,GET通过URL提交数据,数据在URL中可见:POST把数据放在form的数据体内提交.GET提交的数据最多只有1024字节:POST ...