[ZJOI2009]狼和羊的故事 BZOJ1412 原创 fish04 2022-05-27 20:07:06 博主文章分类:网络流 ©著作权 文章标签 #include #define 数据 文章分类 后端开发 ©著作权归作者所有:来自51CTO博客作者fish04的原创作品,请联系作者获取转载授权,否则将追究法律责任 题目描述“狼爱上羊啊爱的疯狂,谁让他们真爱了一场;狼爱上羊啊并不荒唐,他们说有爱就有方向......” Orez听到这首歌,心想:狼和羊如此和谐,为什么不尝试羊狼合养呢?说干就干! Orez的羊狼圈可以看作一个n*m个矩阵格子,这个矩阵的边缘已经装上了篱笆。可是Drake很快发现狼再怎么也是狼,它们总是对羊垂涎三尺,那首歌只不过是一个动人的传说而已。所以Orez决定在羊狼圈中再加入一些篱笆,还是要将羊狼分开来养。 通过仔细观察,Orez发现狼和羊都有属于自己领地,若狼和羊们不能呆在自己的领地,那它们就会变得非常暴躁,不利于他们的成长。 Orez想要添加篱笆的尽可能的短。当然这个篱笆首先得保证不能改变狼羊的所属领地,再就是篱笆必须修筑完整,也就是说必须修建在单位格子的边界上并且不能只修建一部分。输入输出格式输入格式:文件的第一行包含两个整数n和m。接下来n行每行m个整数,1表示该格子属于狼的领地,2表示属于羊的领地,0表示该格子不是任何一只动物的领地。输出格式:文件中仅包含一个整数ans,代表篱笆的最短长度。输入输出样例输入样例#1:复制2 22 2 1 1输出样例#1: 复制2说明数据范围10%的数据 n,m≤330%的数据 n,m≤20100%的数据 n,m≤100 最小割;源点和狼连边,容量为inf;汇点与羊连边,容量为inf;接着所有的点再与周围的点相连,容量为1;求最小割时自然会割去容量为1的边,最终使得st,ed分开;那么也就是我们的目的所在;所以直接跑一边dinic就行了;#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include//#include//#pragma GCC optimize(2)using namespace std;#define maxn 400005#define inf 0x7fffffff//#define INF 1e18#define rdint(x) scanf("%d",&x)#define rdllt(x) scanf("%lld",&x)#define rdult(x) scanf("%lu",&x)#define rdlf(x) scanf("%lf",&x)#define rdstr(x) scanf("%s",x)typedef long long ll;typedef unsigned long long ull;typedef unsigned int U;#define ms(x) memset((x),0,sizeof(x))const long long int mod = 1e9 + 7;#define Mod 1000000000#define sq(x) (x)*(x)#define eps 1e-3typedef pair pii;#define pi acos(-1.0)const int N = 1005;#define REP(i,n) for(int i=0;i<(n);i++)typedef pair pii;inline ll rd() { ll x = 0; char c = getchar(); bool f = false; while (!isdigit(c)) { if (c == '-') f = true; c = getchar(); } while (isdigit(c)) { x = (x << 1) + (x << 3) + (c ^ 48); c = getchar(); } return f ? -x : x;}ll gcd(ll a, ll b) { return b == 0 ? a : gcd(b, a%b);}ll sqr(ll x) { return x * x; }/*ll ans;ll exgcd(ll a, ll b, ll &x, ll &y) { if (!b) { x = 1; y = 0; return a; } ans = exgcd(b, a%b, x, y); ll t = x; x = y; y = t - a / b * y; return ans;}*/int n, m;int st, ed;struct node { int u, v, nxt, w;}edge[maxn<<1];int head[maxn], cnt;void addedge(int u, int v, int w) { edge[cnt].u = u; edge[cnt].v = v; edge[cnt].w = w; edge[cnt].nxt = head[u]; head[u] = cnt++;}int rk[maxn];int bfs() { queueq; ms(rk); rk[st] = 1; q.push(st); while (!q.empty()) { int tmp = q.front(); q.pop(); for (int i = head[tmp]; i != -1; i = edge[i].nxt) { int to = edge[i].v; if (rk[to] || edge[i].w <= 0)continue; rk[to] = rk[tmp] + 1; q.push(to); } } return rk[ed];}int dfs(int u, int flow) { if (u == ed)return flow; int add = 0; for (int i = head[u]; i != -1 && add < flow; i = edge[i].nxt) { int v = edge[i].v; if (rk[v] != rk[u] + 1 || !edge[i].w)continue; int tmpadd = dfs(v, min(edge[i].w, flow - add)); if (!tmpadd) { rk[v] = -1; continue; } edge[i].w -= tmpadd; edge[i ^ 1].w += tmpadd; add += tmpadd; } return add;}int ans;void dinic() { while (bfs())ans += dfs(st, inf);}int pos(int x, int y) { return m * (x - 1) + y;}int mp[200][200];int dx[] = { 0,0,1,-1 };int dy[] = { 1,-1,0,0 };int main(){ //ios::sync_with_stdio(0); rdint(n); rdint(m); memset(head, -1, sizeof(head)); st = m * n + 1; ed = st + 1; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++)rdint(mp[i][j]); } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { if (mp[i][j] == 1) { addedge(st, pos(i, j), inf); addedge(pos(i, j), st, 0); } else if (mp[i][j] == 2) { addedge(pos(i, j), ed, inf); addedge(ed, pos(i, j), 0); } } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { for (int k = 0; k < 4; k++) { int nx = i + dx[k]; int ny = j + dy[k]; if (nx >= 1 && nx <= n && ny >= 1 && ny <= m) { addedge(pos(i, j), pos(nx, ny), 1); addedge(pos(nx, ny), pos(i, j), 0); } } } } dinic(); cout << ans << endl; return 0;} EPFL - Fighting 赞 收藏 评论 分享 举报 上一篇:[SCOI2007]修车 费用流 BZOJ 1070 下一篇:[SCOI2007]蜥蜴 BZOJ1066 最大流 提问和评论都可以,用心的回复会被更多人看到 评论 发布评论 全部评论 () 最热 最新 相关文章 三只羊的麻烦,轮到抖音了… 「辛巴烤羊」这件事,本以为,辛巴会紧追着不放,没成想,辛巴到了「替羊赔付」这一环节后,功未成身先退了……更让小柴和万千网友万万没想到的是,辛巴在这件事中的抽身,是因为三只羊,竟然在自己已经千疮百孔的情况下,狠狠的在自己胸口扎了一刀。也即在直播间里哭一场,卖个惨,接着就是321上连接。当然,三只羊发家就是靠演技的,这也没啥,但321上链接,上了个香港美诚月饼,给三只羊来了个「火上浇油」。三只羊的这走 搜索 网络平台 新动态 【量子芯链】半导体产业的性别和效率:摩尔定律背后的故事 摩尔定律,这一描述半导体产业发展趋势的重要理论,预言了计算能力成本的直线下降。然而,这一预言的实现,并非仅仅依靠技术的进步,还离不开劳动力的贡献——尤其是女性劳动力在半导体装配线上的辛勤付出。在半导体设计领域,男性占据了主导地位,他们凭借出色的技术能力和创新思维,推动了半导体技术的飞速发展。然而,在半导体的装配线上,女性却扮演着不可或缺的角色。她们以精湛的手工技艺和极高的耐心,完成了复杂的装配工作 摩尔定律 发展趋势 封装 半导体 文心智能体AI-深夜鬼故事 创作灵感在数字时代的浪潮中,文心智能体AI凭借其深邃的网络连接与庞大的知识库,探索并重塑了文学创作的无限可能。特别是在恐怖文学领域,它以其独特的视角和不受限于人类经验的想象力,可以编织出一篇篇扣人心弦、令人胆寒的深夜鬼故事。这些故事不仅挑战了读者的心理极限,更引领着文学与人工智能融合的新风尚。创作教程创建智能体名称我们将此智能体命名为“深夜鬼故事”,旨在说明他的用处。设定智能体角色你是一位擅长讲述 人工智能 智能体 bzoj1412 [ZJOI2009]狼和羊的故事 (http://www.elijahqi.win/2017/12/25/b狼合养 #include 数据 #define BZOJ1412 [ZJOI2009]狼和羊的故事 【最小割】 1412: [ZJOI2009]狼和羊的故事Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3454 Solved: 1733[Submit][Status][Discuss]Description“狼爱上羊啊爱的疯狂,谁让他们真爱了一场;狼爱上羊啊... 代码 【BZOJ】【1412】【ZJOI2009】狼和羊的故事 网络流/最小割 一开始我是将羊的区域看作连通块,狼的区域看作另一种连通块,S向每个羊连通块连一条无穷边,每个狼连通块向T连一条无穷边,连通块内部互相都是无穷边。其余是四连通的流量为1的边……然后WA了= =自己的数据和样例都过了…… 然后orz了一下Hzwer,改成对每个羊/狼都单独连一条无穷边... BZOJ 网络流 最小割 #include 连通块 BZOJ 1412: [ZJOI2009]狼和羊的故事 最小割 Description “狼爱上羊啊爱的疯狂,谁让他们真爱了一场;狼爱上羊啊并不荒唐,他们说有爱就有方向......” Orez听到这首歌,心想:狼和羊如此和谐,为什么不尝试羊狼合养呢?说干就干! Orez的羊狼圈可以看作一个n*m个矩阵格子,这个矩阵的边缘已经装上了篱笆。可是Drake很快发现狼再怎么也是狼,它们总是对羊垂涎三尺,那首歌只不过是一个动人的传说而已。所以Orez决定在羊狼圈中再加入 i++ 数据 最小割 其他 BZOJ 1412 [ZJOI2009]狼和羊的故事 最小割 Description“狼爱上羊啊爱的疯狂,谁让他们真爱了一场;狼爱上羊啊并不荒唐,他们说。所以Orez决定在羊狼圈中再加 数据 最小割 i++ 洛谷 P2598 [ZJOI2009]狼和羊的故事 题目描述 “狼爱上羊啊爱的疯狂,谁让他们真爱了一场;狼爱上羊啊并不荒唐,他们说有爱就有方向......” Orez听到这首歌,心想:狼和羊如此和谐,为什么不尝试羊狼合养呢?说干就干! Orez的羊狼圈可以看作一个n*m个矩阵格子,这个矩阵的边缘已经装上了篱笆。可是Drake很快发现狼再怎么也是狼,它 水题集合 【ZJOI2009】[JZOJ1637] 狼和羊的故事 Description “狼爱上羊啊爱的疯狂,谁让他们真爱了一场;狼爱上羊啊并不荒唐,他们说有爱就有方向......” Orez听到这首歌,。所以Ore #include #define GAP 洛谷 P2598 [ZJOI2009]狼和羊的故事 网络流 最大流 最小割 Dinic算法 题目链接:https://www.luogu.com.cn/problem/P2598思路来源博客:h.. 洛谷P2598狼和羊的故事 网络流 最大流 最小割 Dinic算法 bzoj1412: [ZJOI2009]狼和羊的故事 这题好像做过,但是两个号都没有提交记录,看到青铜桐在做,记得是水题就写了。 一眼最小割啊,栅栏就是割嘛。st和狼建边,羊和ed建边,然后就是狼、空地->空地、羊,就是上下左右。 样例没空地被坑了一手。还有就是h数组初始化st T了n次。。。 #include i++ ios 数组初始化 最小割 【BZOJ1412】[ZJOI2009]狼和羊的故事 最小割 【BZOJ1412】[ZJOI2009]狼和羊的故事 Description “狼爱上羊啊爱的疯狂,谁让他们真爱了一场;狼爱上羊啊并不荒唐,他们说有爱就有方向......” Orez听到这首歌,心想:狼和羊如此和谐,为什么不尝试羊狼合养呢?说干就干! Orez的羊狼圈可以看作一个n*m个矩阵格子,这 BZOJ 网络流 #include 数据 i++ BZOJ1412 [ZJOI2009] 狼和羊的故事(Dinic算法求最大流) Description “狼爱上羊啊爱的疯狂,谁让他们真爱了一场;狼爱上羊啊并不荒唐,他们说有爱就有方向......” Orez听到这首歌,心想:狼和羊如此和谐,为什么不尝试羊狼合养呢?说干就干! Orez的羊狼圈可以看作一个n*m个矩阵格子,这个矩阵的边缘已经装上了篱笆。可是Drake很快发现狼再 sed i++ 最小割 链式前向星 #include bzoj 1412 [ZJOI2009]狼和羊的故事(最小割) 【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=1412 【题意】 在一个n*m的格子中,将羊和狼隔开的最小代价。 【思路】 最小割。 由S向狼连边inf,由羊向T连边inf,由狼向 冲刺省选 #include i++ ide 最小割 [bzoj1412]狼和羊的故事 题意是需要在某些相邻的节点中建立栅栏使得这两个点不能直接走到,使得所有狼的领地和羊的领地两两不能(间接)走到最少需要多少栅栏。 很显然,将S向所有羊连边,狼向T连边(流量为inf),然后任意相邻两个点连边(羊/狼之间可以不连),求最小割即可。 1 #include<bits/stdc++.h> 2 图论-最大流&最小割 #define i++ #include c++ ZJOI2009 狼和羊的故事 既然这题这么水,我就不写了……挖掘栅栏的本质:只能建在相邻两个,且建好后使得狼和羊之间不存在通路。而割的定义是:使S集和T集不存在通路。而题目又要求建的栅栏最少,于是就是最小割问题了。从源点向所有狼连一条∞的边,从所有羊向汇点连一条∞的边,这样就能保证狼和羊都在不同的点集里。然后再从狼到相邻的羊和空... Read More 最小割 sed #include i++ #define p2598 [ZJOI2009]狼和羊的故事 传送门 分析 起点向狼连边,羊向终点连边,边权均为inf 每个点向它四联通的点连边权萎1的边 跑最小割即可 代码 #include i++ ios 最小割 C语言 BZOJ 1412 狼和羊的故事 这个妥妥的最小割,但是我想了好久。。。。考虑所有羊连源点,狼连汇点,相邻点两边跑最小割(最大流)即可。正确性?考虑类似一个二分图的东西,我们只需要把狼集合和羊集合拦腰斩断即可。#include#include#include#include#define maxe 100005#define max... #define #include 最小割 i++ ios 【洛谷】P2598 [ZJOI2009]狼和羊的故事(最小割) 原题链接 题意 给定一张 \(n \times m\) 的网格图,每个点可能是狼的领地,也可能是羊的领地,或者两者皆不是。要求在一些点的边上建栅栏,使得所有狼的领地和羊的领地无法直接相连。求最小建的栅栏数。 数据范围 \(1 \leq n,m \leq 100\)。 思路 注意到题目要求羊的领地和狼 ... 最小割 最大流 网络流 #include 数据 hdfs 保存文件命令 在2019年3月的北京云栖峰会上,阿里云正式推出全球首个云原生HDFS存储服务—文件存储HDFS,为数据分析业务在云上提供可线性扩展的吞吐能力和免运维的快速弹性伸缩能力,降低用户TCO。阿里云文件存储HDFS的发布真正解决了HDFS文件系统不适应云上场景的缺陷问题,用户无须花费精力维护和优化底层存储。云时代,通过借助虚拟化技术,大数据分析的计算框架在云上逐渐实现了快速部署和弹性伸缩。但是作为数据底 hdfs 保存文件命令 运维 人工智能 后端 HDFS flutter androidstudio日志 简介Flutter 是 Google 出品的 UI 工具包,旨在使用一套代码构建精美的移动端、网页和桌面端的跨平台应用。Flutter 资源大全中文版翻译整理自awesome-flutter,在此基础上会不定期补充一些中文 Flutter 相关的资源,内容涵盖:组件、导航、模板、插件、框架、引擎、开源应用、网页、工具集和书籍等。这个资源列表的中文版由微信公众号「开源前哨」维护。项目地址Github flutter UI Firebase Google spring cloud gateway 接口注册至网关 API网关API 网关(API Gateway)主要负责服务请求路由、组合及协议转换。 API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。 API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务, java springcloud API 微服务 spring python 不规则矩形图片顶点坐标 目录1 如何删除影像黑边?1.1 symbology1.2 raster copy2 如何给影像设定坐标系?2.1 catalog属性修改2.2 定义投影3 如何实现栅格影像平面坐标与地理坐标相互转换?4 如何进行影像镶嵌融合?4.1 `Mosaic`和`Mosaic To New Raster`4.2 创建镶嵌数据集4.2.1 `Create Mosaic Dataset`4.2.2 `Cat python 不规则矩形图片顶点坐标 ArcGIS 图层 栅格 地统计 hive性能调优实战 林志煌 pdf Map数通常情况下,作业会通过input的目录产生一个或者多个map任务。主要的决定因素有:input的文件总个数,input的文件大小,集群设置的文件块大小(目前为128M,可在hive中通过set dfs.block.size;命令查看到,该参数不能自定义修改);举例:a)一个大文件:假设input目录下有1个文件a,大小为780M,那么hadoop会将该文件a分隔成7个块(6个128m的块和 hive性能调优实战 林志煌 pdf hive 任务处理 hadoop 大数据量