题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1001
1001: [BeiJing2006]狼抓兔子
Time Limit: 15 Sec Memory Limit: 162 MB
Submit: 27684 Solved: 7127
Description
Input
Output
输出一个整数,表示参与伏击的狼的最小数量.
Sample Input
5 6 4
4 3 1
7 5 3
5 6 7 8
8 7 6 5
5 5 5
6 6 6
Sample Output
题外话:看着这图想到对偶图,然后就想起了bzoj2007海拔那题......
题解:题意就是求最小割,把平面图转化成对偶图然后从右上角到左下角跑dijkstra就可以了......注意双向边,数组开大点。
(一开始用vector写结果爆内存了,还是数组好用...)
#include<bits/stdc++.h>
#define CLR(a, b) memset((a), (b), sizeof((a)))
using namespace std;
const int INF = 1e9+;
const int N = 2e6+;
const int M = *N;
int head[N];
int d[N], vis[N];
struct Edge{
int v, c, nex;
}E[M];
int num = ;
void add(int u,int v,int c){
E[num].v = v; E[num].c = c; E[num].nex = head[u];
head[u] = num++;
}
struct qnode{
int v,c,x;
qnode(int _v=,int _c=,int _x=):v(_v),c(_c),x(_x){}
bool operator < (const qnode &r)const{
return r.c<c;
}
};
void dij(int s, int n) {//起点、终点
CLR(vis, );
for(int i = ; i <= n; i++) d[i] = INF;
priority_queue<qnode>q;
while(!q.empty()) q.pop();
d[s] = ;
q.push(qnode(s, ));
qnode t;
while(!q.empty()) {
t = q.top(); q.pop();
int u = t.v;
if(vis[u])continue;
vis[u] = true;
for(int i = head[u]; ~i; i = E[i].nex) {
int v = E[i].v;
int c = E[i].c;
if(!vis[v] && d[v] > d[u] + c) {
d[v] = d[u] + c;
q.push(qnode(v, d[v]));
}
}
}
}
int main() {
int n, m;
int k, i, j, u, v, w;
CLR(head,-); CLR(E, ); scanf("%d%d", &n, &m);
int s = ; //起点
int t = *(n-)*(m-)+;//终点 for(i = ; i <= n; ++i) {
for(j = ; j < m; ++j) {
scanf("%d", &w);
u = ( i==? s : (*(i-)-)*(m-)+j );
v = ( i==n? t : *(i-)*(m-)+j );
add(u, v, w); add(v, u, w);
}
}
for(i = ; i < n; ++i) {
for(j = ; j <= m; ++j) {
scanf("%d", &w);
u = ( j==m? s : *(i-)*(m-)+j-+m );
v = ( j==? t : *(i-)*(m-)+j- );
add(u, v, w); add(v, u, w);
}
}
for(i = ; i < n; ++i) {
for(j = ; j < m; ++j) {
scanf("%d", &w);
u = *(i-)*(m-)+j;
v = (*(i-)+)*(m-)+j;
add(u, v, w); add(v, u, w);
}
} dij(s, t);
printf("%d\n", d[t]);
return ;
}
2640ms
BZOJ1001: [BeiJing2006]狼抓兔子【最短路+对偶图】的更多相关文章
-
BZOJ1001: [BeiJing2006]狼抓兔子 [最小割 | 对偶图+spfa]
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 19528 Solved: 4818[Submit][ ...
-
[BZOJ1001] [Beijing2006] 狼抓兔子 (最短路)
Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个 ...
-
BZOJ1001 [BeiJing2006]狼抓兔子 最小割 对偶图 最短路
原文链接http://www.cnblogs.com/zhouzhendong/p/8686871.html 题目传送门 - BZOJ1001 题意 长成上面那样的网格图求最小割. $n,m\leq ...
-
BZOJ1001 BeiJing2006 狼抓兔子 【网络流-最小割】*
BZOJ1001 BeiJing2006 狼抓兔子 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较 ...
-
[BZOJ1001][BeiJing2006]狼抓兔子(最小割转最短路|平面图转对偶图)
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 31805 Solved: 8494[Submit][ ...
-
BZOJ1001: [BeiJing2006]狼抓兔子(优化的dinic或转化对偶图求最短路)
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 30078 Solved: 7908[Submit][ ...
-
BZOJ 1001: [BeiJing2006]狼抓兔子(最短路)
平面图的最小割转化为对偶图的最短路(资料:两极相通——浅析最大最小定理在信息学竞赛中的应用) ,然后DIJKSTRA就OK了. ------------------------------------ ...
-
bzoj1001: [BeiJing2006]狼抓兔子 -- 最小割
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MB Description 现在小朋友们最喜欢的"喜羊羊与灰太狼 ...
-
bzoj1001: [BeiJing2006]狼抓兔子(初识是你最小割)
1001: [BeiJing2006]狼抓兔子 题目:传送门 题解: 听说这题当初是大难题...可惜当年没有网络流hahahha 现在用网络流的思想就很容易解决了嘛 给什么连什么,注意是双向边,然后跑 ...
随机推荐
-
Castle 多继承选择
Castle 多继承选择 很多时候,我们定义了一个接口,但是这个接口会有多种不同的,这时IOC构造函数注入的时候,就需要自动选择对应的实现. public interface ITestService ...
-
javascript实现数据结构与算法系列:队列 -- 链队列和循环队列实现及示例
1 队列的基本概念 队列(Queue):也是运算受限的线性表.是一种先进先出(First In First Out ,简称FIFO)的线性表.只允许在表的一端进行插入,而在另一端进行删除. 队首(fr ...
-
GitHub Desktop安装异常解决
为了更好的共同学习,共同进步,哥们推荐我使用GitHub记录自己每天的学习记录,当下很火的提供一个分布式的版本控制系统(Git)服务的网站,GitHub提供GitHub Desktop桌面程序方便协同 ...
-
对Linux 专家非常有用的20 个命令
谢谢你你给了我们在这篇文章前两个部分的喜欢,美言和支持.在第一部分文章中我们讨论了那些都只是切换到 Linux 和linux新手所需的必要知识的用户的命令. 对 Linux 新手非常有用的 20 个命 ...
-
MvcHtmlString解决MVC中从后台返回HTML代码被编码问题
(1) 要得到的效果 <a class="easyui-linkbutton" data-options="iconCls:'icon-add'" id= ...
-
angularjs优化方略
angular优化方略,闲的没事想重构的人来瞅瞅. 1.减少$watch 减少$watch,减少$watch,减少$watch.不仅仅是$watch监听,还有ng-model,别闲的没事就加个ng-m ...
-
34)django-上传文件,图片预览功能实现
目录 文件上传 1)form表单提交上传(会刷新) 2)ajax上传 3)iframe 4)图片上传预览(思路保存文件的时候,把文件保存文件的路径反馈回,客户端 ...
-
System.Types.hpp(77): E2029 &#39;TObject&#39; must be a previously defined class or struct
System.Types.hpp System.Types.hpp(77): E2029 'TObject' must be a previously defined class or struct ...
-
程序员,不要让自己做兔子(updated) 网上最近流传的一个笑话,关于兔子,狼还有一只老虎的,故事 我就是想打你了,还需要什么理由吗?谁让你是兔子 项目经理是这样当的
程序员,不要让自己做兔子(updated) 前段时间和一个朋友聊天,酒席间向我抱怨他那段时间的郁闷:项目经理从客户那里拿来一个需求,实际上就是一个ppt描述,我这个朋友拿过来看后刚开始不觉得什么,一个 ...
-
20145220韩旭飞《网络对抗》Exp2 后门原理与实践
20145220韩旭飞<网络对抗>Exp2 后门原理与实践 常用后门工具实践 Windows获得Linux Shell 在Windows下,先使用ipconfig指令查看本机IP: 使用n ...