【平面图】【最小割】【最短路】【Heap-Dijkstra】bzoj1001 [BeiJing2006]狼抓兔子
http://wenku.baidu.com/view/8f1fde586edb6f1aff001f7d.html
#include<cstdio>
#include<queue>
#include<cstring>
using namespace std;
typedef long long ll;
#define N 1001
int n,m,S,T,nn;
struct Point{int u,d;};
bool operator < (Point a,Point b){return a.d>b.d;}
int dis[N*N*2+2];
bool vis[N*N*2+2];
priority_queue<Point>q;
int en,v[N*N*3*2],next[N*N*3*2],w[N*N*3*2],first[N*N*2+2];
void AddEdge(int U,int V,int W)
{
v[++en]=V;
w[en]=W;
next[en]=first[U];
first[U]=en;
}
void dijkstra()
{
memset(dis+1,0x7f,sizeof(int)*(nn));
dis[S]=0; q.push((Point){S,0});
while(!q.empty())
{
int U=q.top().u; q.pop();
if(!vis[U])
{
vis[U]=1;
for(int i=first[U];i;i=next[i])
if((ll)dis[v[i]]>(ll)dis[U]+(ll)w[i])
{
dis[v[i]]=dis[U]+w[i];
q.push((Point){v[i],dis[v[i]]});
}
}
}
}
int main()
{
int x;
scanf("%d%d",&n,&m); nn=(n-1)*(m-1)*2+2; S=nn-1; T=nn;
for(int j=1;j<m;++j)
{
scanf("%d",&x);
AddEdge(S,j,x);
AddEdge(j,S,x);
}
for(int i=2;i<n;++i)
for(int j=1;j<m;++j)
{
scanf("%d",&x);
AddEdge(((i<<1)-3)*(m-1)+j,((i<<1)-2)*(m-1)+j,x);
AddEdge(((i<<1)-2)*(m-1)+j,((i<<1)-3)*(m-1)+j,x);
}
for(int j=1;j<m;++j)
{
scanf("%d",&x);
AddEdge(((n<<1)-3)*(m-1)+j,T,x);
AddEdge(T,((n<<1)-3)*(m-1)+j,x);
}
for(int i=1;i<n;++i)
{
scanf("%d",&x);
AddEdge(T,((i<<1)-1)*(m-1)+1,x);
AddEdge(((i<<1)-1)*(m-1)+1,T,x);
for(int j=2;j<m;++j)
{
scanf("%d",&x);
AddEdge(((i<<1)-2)*(m-1)+j-1,((i<<1)-1)*(m-1)+j,x);
AddEdge(((i<<1)-1)*(m-1)+j,((i<<1)-2)*(m-1)+j-1,x);
}
scanf("%d",&x);
AddEdge(((i<<1)-1)*(m-1),S,x);
AddEdge(S,((i<<1)-1)*(m-1),x);
}
for(int i=1;i<n;++i)
for(int j=1;j<m;++j)
{
scanf("%d",&x);
AddEdge(((i<<1)-2)*(m-1)+j,((i<<1)-1)*(m-1)+j,x);
AddEdge(((i<<1)-1)*(m-1)+j,((i<<1)-2)*(m-1)+j,x);
}
dijkstra();
printf("%d\n",dis[T]);
return 0;
}
【平面图】【最小割】【最短路】【Heap-Dijkstra】bzoj1001 [BeiJing2006]狼抓兔子的更多相关文章
- BZOJ1001 BeiJing2006 狼抓兔子 【网络流-最小割】*
BZOJ1001 BeiJing2006 狼抓兔子 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较 ...
- [BZOJ1001][BeiJing2006]狼抓兔子(最小割转最短路|平面图转对偶图)
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 31805 Solved: 8494[Submit][ ...
- BZOJ1001: [BeiJing2006]狼抓兔子 [最小割 | 对偶图+spfa]
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 19528 Solved: 4818[Submit][ ...
- bzoj1001: [BeiJing2006]狼抓兔子 -- 最小割
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MB Description 现在小朋友们最喜欢的"喜羊羊与灰太狼 ...
- BZOJ1001: [BeiJing2006]狼抓兔子(优化的dinic或转化对偶图求最短路)
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 30078 Solved: 7908[Submit][ ...
- BZOJ1001: [BeiJing2006]狼抓兔子【最短路+对偶图】
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1001 1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Se ...
- [bzoj1001][BeiJing2006]狼抓兔子_网络流_最小割转对偶图
狼抓兔子 bzoj-1001 BeiJing2006 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还 ...
- BZOJ1001 [BeiJing2006]狼抓兔子 最小割 对偶图 最短路
原文链接http://www.cnblogs.com/zhouzhendong/p/8686871.html 题目传送门 - BZOJ1001 题意 长成上面那样的网格图求最小割. $n,m\leq ...
- BZOJ1001[BeiJing2006]狼抓兔子最小割網絡流
Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一 ...
- BZOJ1001[BeiJing2006]狼抓兔子——最小割
题目描述 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: ...
随机推荐
- HDFS集中化缓存管理
概述 HDFS中的集中化缓存管理是一个明确的缓存机制,它允许用户指定要缓存的HDFS路径.NameNode会和保存着所需快数据的所有DataNode通信,并指导他们把块数据缓存在off-heap缓存中 ...
- 通过AWS的DHCP自动获取的IP地址是否会发生改变?
针对您的问题,分析如下:1.在一个VPC内,通过AWS的DHCP自动获取的IP地址,在如何情况下会发生改变?例如我把vpc的内所有100个ec2实例全部关闭,再全部重新打开,是否会发生IP地址变化的情 ...
- 2017年上海金马五校程序设计竞赛:Problem A : STEED Cards (STL全排列函数)
Description Corn does not participate the STEED contest, but he is interested in the word "STEE ...
- linux基础-临时和永久修改ip地址以及通配符相关
一.临时配置网络(ip,网关,dns) 修改临时ip地址: 1.ifconfig查看当前的网卡和ip地址 2.临时修改IP地址:ifconfig ens32 192.168.16.200/24,ifc ...
- (五)对linux内核中jiffies+Hz表示一秒钟的理解
jiffies在内核中是一个全局变量,它用来统计系统启动以来系统中产生的总节拍数,这个变量定义在include/Linux/jiffies.h中,定义形式如下. unsigned long volat ...
- [ 总结 ] Linux 下文件描述符
1.概述: 文件描述符是内核为了高效管理已被打开的文件所创建的索引.是一个非负整数,用于代指被打开的文件.所有通过I/O操作的系统调用都通过文件描述符. 文件描述符用以表明每一个被进程所打开的文件和s ...
- vue—你必须知道的
更多总结 猛戳这里 属性与方法 不要在实例属性或者回调函数中(例如,vm.$watch('a', newVal => this.myMethod())使用箭头函数.因为箭头函数会绑定父级上下文, ...
- ajax邮箱、用户名唯一性验证
<script type="text/javascript"> $(function () { $("#txtEmail").blur(functi ...
- 在表达式和脚本中将bean实例暴露出来
默认情况下,在activiti.cfg.xml中的所有bean和Spring配置文件中的所有bean都可以用于表达式和脚本.如果要限制配置文件中的bean的可见性,可以在流程引擎配置文件中配置一个名为 ...
- Tomcat的类加载机制
一个功能健全的Web服务器,要解决如下几个问题: 部署在同一个服务器上的两个Web应用程序使用的Java 类库可以实现相互隔离.不能要求一个类库在一个服务器中只有一份,服务器应当保证两个应用程序的类 ...