题面

可以看出来是最小割,然后你就去求最大流了

这么大的范围就是让你用网络流卡的?咋想的啊=。=???

建议还是老老实实用 平面图最小割等于其对偶图最短路 这个东西来做吧,虽然这个东西跑的也挺慢的,最后一个点跑了$2s$

对偶图就是被边分割出来的每个区域当成一个点,然后两个区域有公共边就连边,起点和终点的问题就在源汇点中间连一条边然后就能分出来了

  1. #include<queue>
  2. #include<cstdio>
  3. #include<cctype>
  4. #include<cstring>
  5. #include<algorithm>
  6. using namespace std;
  7. const int N=,M=;
  8. struct a{int node,dist;};
  9. bool operator < (a x,a y)
  10. {
  11. return x.dist>y.dist;
  12. }
  13. priority_queue<a> hp;
  14. int p[N],noww[*M],goal[*M],val[*M],dis[N],vis[N];
  15. int n,m,rd,st,ed,bs,t1,t2,cnt;
  16. void Read(int &x)
  17. {
  18. x=; char ch=getchar();
  19. while(!isdigit(ch))
  20. ch=getchar();
  21. while(isdigit(ch))
  22. x=(x<<)+(x<<)+(ch^),ch=getchar();
  23. }
  24. void Link(int f,int t,int v)
  25. {
  26. noww[++cnt]=p[f],p[f]=cnt;
  27. goal[cnt]=t,val[cnt]=v;
  28. }
  29. int ID(int a,int b,int c)
  30. {
  31. if(a>n||!b) return st;
  32. if(!a||b>m) return ed;
  33. return (a-)*m+b+c*n*m;
  34. }
  35. void Dijkstra()
  36. {
  37. memset(dis,0x3f,sizeof dis);
  38. dis[st]=,hp.push((a){st,});
  39. while(!hp.empty())
  40. {
  41. a tt=hp.top(); hp.pop(); int tn=tt.node;
  42. if(vis[tn]) continue; vis[tn]=true;
  43. for(int i=p[tn];i;i=noww[i])
  44. if(dis[goal[i]]>dis[tn]+val[i])
  45. {
  46. dis[goal[i]]=dis[tn]+val[i];
  47. hp.push((a){goal[i],dis[goal[i]]});
  48. }
  49. }
  50. }
  51. int main()
  52. {
  53. register int i,j;
  54. Read(n),Read(m);
  55. n--,m--,st=*n*m+,ed=st+;
  56. for(i=;i<=n+;i++)
  57. for(j=;j<=m;j++)
  58. {
  59. Read(rd),t1=ID(i,j,),t2=ID(i-,j,);
  60. Link(t1,t2,rd),Link(t2,t1,rd);
  61. }
  62. for(i=;i<=n;i++)
  63. for(j=;j<=m+;j++)
  64. {
  65. Read(rd),t1=ID(i,j,),t2=ID(i,j-,);
  66. Link(t1,t2,rd),Link(t2,t1,rd);
  67. }
  68. for(i=;i<=n;i++)
  69. for(j=;j<=m;j++)
  70. {
  71. Read(rd),t1=ID(i,j,),t2=ID(i,j,);
  72. Link(t1,t2,rd),Link(t2,t1,rd);
  73. }
  74. Dijkstra(); printf("%d",dis[ed]);
  75. return ;
  76. }

解题:BJOI 2006 狼抓兔子的更多相关文章

  1. P4001 [ICPC-Beijing 2006]狼抓兔子

    题目地址:P4001 [ICPC-Beijing 2006]狼抓兔子 平面图 边与边只在顶点相交的图. 对偶图 对于一个平面图,都有其对应的对偶图. 平面图被划分出的每一个区域当作对偶图的一个点: 平 ...

  2. 2021.12.02 P4001 [ICPC-Beijing 2006]狼抓兔子(最小割)

    2021.12.02 P4001 [ICPC-Beijing 2006]狼抓兔子(最小割) https://www.luogu.com.cn/problem/P4001 题意: 把图分成两部分需要的最 ...

  3. 洛谷 P4001 [ICPC-Beijing 2006]狼抓兔子

    题目描述 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: ...

  4. 洛谷$P4001\ [ICPC-Beijing 2006]$狼抓兔子 网络流+对偶图

    正解:网络流+对偶图 解题报告: 传送门! $umm$日常看不懂题系列了$kk$.其实就是说,给定一个$n\cdot n$的网格图,求最小割$QwQ$ 然后网格图的话显然是个平面图,又看到数据范围$n ...

  5. P4001-[ICPC-Beijing 2006]狼抓兔子【对偶图】

    正题 题目链接:https://www.luogu.com.cn/problem/P4001 题目大意 给出一个类似于 的网格图,求起点到终点的最小割. 解题思路 最小割直接跑网络流,然后发现\(di ...

  6. ICPC-Beijing 2006 狼抓兔子

    题目描述 题解: 裸的最小割. 但是最大流跑不过去怎么办? 转变一下,既然最大流是一条左下<->右上的通路,我们可以把图划分为若干区域, 最后找左下到右上的最短路就行了. 代码: #inc ...

  7. [BZOJ 2006] 狼抓兔子

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1001 [算法] 最小割 [代码] #include<bits/stdc++.h ...

  8. 【洛谷4001】 [ICPC-Beijing 2006]狼抓兔子(最小割)

    传送门 洛谷 Solution 直接跑最小割板子就好了. 代码实现 #include<stdio.h> #include<stdlib.h> #include<strin ...

  9. bzoj1001 [ICPC-Beijing 2006]狼抓兔子

    我满心以为本题正解为最短路,结果到处都是最大流…… 几乎所有的都写了什么“对偶图”跑最短路,但我真的不知道什么叫做对偶图---------------------------------------- ...

随机推荐

  1. passwd命令详解

    基础命令学习目录首页 passwd命令用于设置用户的认证信息,包括用户密码.密码过期时间等.系统管理者则能用它管理系统用户的密码.只有管理者可以指定用户名称,一般用户只能变更自己的密码. 语法 pas ...

  2. Django之Form

    目录 一.说明 二.参数说明 三.自定义验证规则 四.实例 一.说明 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数 ...

  3. +new Date()的用法

    var s=+newDate();   var s=+newDate(); 解释如下:=+是不存在的; +new Date()是一个东西; +相当于.valueOf(); 看到回复补充一下.getTi ...

  4. (第十一周)约跑APP测试报告

    项目名称:约跑App 用户需求规格说明书URL:http://www.cnblogs.com/liquan/p/6071804.html 组长博客URL:http://www.cnblogs.com/ ...

  5. check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc

    往一个新建的MySQL表中插入数据报错 2018-08-22 14:09:18.875 ERROR 9256 --- [apr-8080-exec-9] o.s.b.w.servlet.support ...

  6. Daily Scrum (2015/10/25)

    今天终于到了周末的尾声,我们的组员也应该正常得投入到工作中了.这天晚上我(符美潇)和PM(潘礼鹏)和两个DEV开了一个小会,讨论一下我们本周的代码编写工作.我们了解到大家的代码阅读工作和相关知识的学习 ...

  7. Task 6.2冲刺会议六 /2015-5-19

    今天主要写的是登陆界面,用户状态,历史登录信息,默认用户等等.由于大部分时间都是把代码组合拳起来的过程,所以总会出现各种bug,有好大一部分不会修复.明天要继续这一部分还有熟悉一下聊天的主界面.

  8. DPDK实例程序:testpmd

    用户手册:https://doc.dpdk.org/guides/testpmd_app_ug/index.html 还不错的入门:http://syswift.com/188.html 我的运行情况 ...

  9. ssh结合使用

    springxml配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=& ...

  10. form表单转化json对象

    利用 $.fn 可以让每一个jquery 对象都能直接使用这个方法. //form表单转化json对象$.fn.serializeObject = function () { var o = {}; ...