bzoj 1934 最小割

 

收获:

  1、流量为0的边可以不加入。

  2、最小割方案要与决策方案对应。

 

 1 #include <cstdio>
 2 #include <cmath>
 3 #include <cstring>
 4 #include <vector>
 5 #define min(a,b) ((a)<(b)?(a):(b))
 6 #define oo 0x3f3f3f3f
 7 #define N 610
 8 using namespace std;
 9 
10 typedef long long dnt;
11 struct Edge {
12     int u, v, f;
13     Edge( int u, int v, int f ):u(u),v(v),f(f){}
14 };
15 struct Dinic {
16     int src, dst;
17     vector<Edge> edge;
18     vector<int> g[N];
19     int dep[N], cur[N], qu[N], bg, ed;
20     void init( int src, int dst ) {
21         this->src = src;
22         this->dst = dst;
23     }
24     void adde( int u, int v, int f ) {
25         g[u].push_back( edge.size() );
26         edge.push_back( Edge(u,v,f) );
27         g[v].push_back( edge.size() );
28         edge.push_back( Edge(v,u,0) );
29     }
30     bool bfs() {
31         memset( dep, 0, sizeof(dep) );
32         qu[bg=ed=1] = src;
33         dep[src] = 1;
34         while( bg<=ed ) {
35             int u=qu[bg++];
36             for( int t=0; t<g[u].size(); t++ ) {
37                 Edge &e = edge[g[u][t]];
38                 if( e.f && !dep[e.v] ) {
39                     dep[e.v] = dep[e.u] + 1;
40                     qu[++ed] = e.v;
41                 }
42             }
43         }
44         return dep[dst];
45     }
46     int dfs( int u, int a ) {
47         if( u==dst || a==0 ) return a;
48         int remain=a, past=0, na;
49         for( int &t=cur[u]; t<g[u].size(); t++ ) {
50             Edge &e=edge[g[u][t]];
51             Edge &ve=edge[g[u][t]^1];
52             if( e.f && dep[e.v]==dep[e.u]+1 && (na=dfs(e.v,min(remain,e.f))) ) {
53                 remain -= na;
54                 past += na;
55                 e.f -= na;
56                 ve.f += na;
57                 if( !remain ) break;
58             }
59         }
60         return past;
61     }
62     int maxflow() {
63         int rt=0;
64         while( bfs() ) {
65             memset( cur, 0, sizeof(cur) );
66             rt += dfs(src,oo);
67         }
68         return rt;
69     }
70 }D;
71 
72 int n, m;
73 int src, dst;
74 
75 int main() {
76     scanf( "%d%d", &n, &m );
77     D.init( src=0, dst=n+1 );
78     for( int i=1,v; i<=n; i++ ) {
79         scanf( "%d", &v );
80         if( !v ) D.adde( src, i, 1 );
81         else D.adde( i, dst, 1 );
82     }
83     for( int i=1; i<=m; i++ ) {
84         int u, v;
85         scanf( "%d%d", &u, &v );
86         D.adde( u, v, 1 );
87         D.adde( v, u, 1 );
88     }
89     printf( "%d\n", D.maxflow() );
90 }
View Code

 

转载于:https://www.cnblogs.com/idy002/p/4526490.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492220.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何让学习变得像游戏一样好玩

如何让学习变得好玩&#xff1f;面对枯燥乏味的重复练习&#xff0c;大多数人因新奇感的消退而放弃&#xff0c;很少有人能够多坚持一会&#xff0c;更别说坚持十年了。 如何减轻这种枯燥乏味&#xff0c;让学习变得好玩&#xff1f; 许多孩子喜欢打游戏&#xff0c;玩得废寝…

【翻译】Ext JS 5:为不同设备设置不同的主题

原文&#xff1a;Sencha Ext JS 5: Supporting Different Themes for Different Devices 步骤1创建一个应用程序步骤2定义主题步骤3编辑Appjson文件以便支持多平台生成步骤4编辑output定义以便创建多个应用程序的manifests步骤5更新应用程序步骤6替换Appjson中的CSS配置步骤7替…

工业4.0:数字化供应链的三个方向

来源&#xff1a;资本实验室席卷全球的工业4.0革命几乎影响着每一个行业&#xff0c;包括各行业的供应链管理。在过去&#xff0c;供应链管理是令各行业都非常头疼的环节&#xff0c;因为传统供应链涉及大量模糊且无法访问的数据&#xff0c;就像”黑洞“一样吞噬着成本、时间与…

有效学习

怎样算有效学习&#xff1f; 记得有位大咖说过&#xff0c;‘当你把受过的教育都忘记了&#xff0c;剩下的就是教育’&#xff08;度娘说是爱因斯坦说的&#xff0c;此处未经考证&#xff09;。 学习可以看成是一个把知识放入潜意识的过程。所谓进入潜意识&#xff0c;是指当…

如果机器能帮我们学习,那么有多少东西能够被遗忘?

来源&#xff1a;原理在我还是个学生时的遥远年代&#xff0c;大多数计算机都还是体型巨大的机器。当时我有一个朋友&#xff0c;他的博士导师坚持让他对一个冗长又困难的原子理论进行手写计算。他用掉了一页又一页的草稿纸&#xff0c;上面充满了错误。于是最终他屈服于自己的…

如何通俗理解计算机视觉、计算机图形、图像处理之间的区别与联系

这三者之间联系和区别可以通过下图表示&#xff0c; 左边的图片表示实际景物&#xff0c;右边图片表示实际景物对应的图片。 1、计算机图形 计算机图形技术常用于计算机生成图形。该技术常用的领域有&#xff1a; a.动漫 b.游戏 c.计算机辅助设计&#xff08;CAD&#xff09;…

Android(java)学习笔记27:TextView属性大全

TextView属性大全&#xff1a; android:autoLink 设置是否当文本为URL链接/email/电话号码/map时&#xff0c;文本显示为可点击的链接。可选值(none/web/email/phone/map/all) android:autoText 如果设置&#xff0c;将自动执行输入值的拼写纠正。此处无效果&#xff…

日本电信企业5G部署计划 限制了华为中兴设备的使用

来源&#xff1a;OFweek电子工程据外媒报道&#xff0c;日本监管机构日前正式向日本电信企业分配5G频谱&#xff0c;而这也正是日本在来年春季推出高速无线服务(5G)的一个重要里程碑。日本三大运营商NTT Docomo、KDDI和软银&#xff0c;以及新进入者Rakuten Inc&#xff0c;都获…

Python安装工具包踩过的坑

1、背景介绍 重装win10系统&#xff0c;重装Python。在坑出现之前&#xff0c;已经完成了Python的安装&#xff08;D盘&#xff09;&#xff0c;并且在系统中添加了环境变量。由于平时需要用到Python2.7和Python3.6&#xff0c;这里将对应的解释器分别改名为Python2和Python3。…

C#实验——Problem Statement

Revision History Date Issue Description Author 17/May/2015 Windows Phone8.1 APP Have some ideas, then developing Windows Phone app 魏 潇 18/May/2015 Windows8.1 APP Transform the phone app to the Windows Store 8.1 platform 19…

物联网面临的7大网络安全威胁

来源&#xff1a;51CTO译稿摘要&#xff1a;曾经在物联网世界&#xff0c;一切都变得更加庞大。不仅是设备本身——有些小到只容纳几个芯片&#xff0c;他们通常隐藏其中&#xff0c;眼不见心不烦。但物联网中庞大的数据和设备规模令任何网络安全专业人士都感到头疼。据广泛统计…

从技术分工的角度来看996.ICU

最近&#xff0c;Github上996.ICU话题自诞生以来异常火爆&#xff0c; 很多人在网上吐槽程序员工作时间长&#xff0c;Python之父也为此伸张正义。 有人在网上抱怨资本家黑心&#xff0c;无情的压榨剥削员工。 各国都存在加班的现象&#xff0c;但似乎加班现象在中国最为严重。…

hibernate之CRUD操作

CRUD是指在做计算处理时的增加(Create)、读取(Retrieve)&#xff08;重新得到数据&#xff09;、更新(Update)和删除(Delete)几个单词的首字母简写. 下面列举实例来讲解这几个操作&#xff1a; 实体类&#xff1a; package com.oumyye.model;public class Student {private lon…

谷歌自动驾驶专利大曝光!

来源&#xff1a;智车科技摘要&#xff1a;本文仅针对其中自动驾驶汽车部分&#xff0c;说明自动驾驶的分级&#xff0c;再以Google为例&#xff0c;说明其发展的自动驾驶汽车和相关技术&#xff0c;分析及说明Google与自动驾驶汽车相关的发明专利及设计专利的布局&#xff0c;…

(Python代码)通过视差图获取图片中不同物体的高度比

1、原理 可以推出不同物体的高度比可以通过如下公式得到&#xff1a; 是左边指定物体的高度&#xff08;图片中尺寸&#xff09; 是右边指定物体的高度&#xff08;图片中尺寸&#xff09; 是左边指定物体的平均视差值 是右边指定物体的平均视差值 2、代码逻辑框图 3、代码详解…

Nginx 安装与启动

安装第一种安装方式&#xff1a;CentOS 7下配置 yum 安装 Nginx。按照官方的安装实例&#xff1a;https://www.nginx.com/resources/admin-guide/第一步&#xff0c;在/etc/yum.repos.d/目录下创建一个源配置文件nginx.repo&#xff1a;cd /etc/yum.repos.d/vim nginx.repo 填写…

一文读懂生物医学领域的传感器

来源&#xff1a;传感器技术摘要&#xff1a;生物医学传感器是生物医学科学和技术的尖兵&#xff0c;生物医学研究的正确结论有赖于生物医学传感器的正确测量。而传感器是一门十分综合的科学和技术。现代传感器的物理模型如图所示&#xff1a;对于传统被测量而言&#xff0c;敏…

训练数据的分布对F-measure, recall 和 precision的影响

1、 Precision, recall and F-measure&#xff08;f1-score&#xff09; 2、思路 数据集&#xff1a;手写数字集 从训练集中抽取数据&#xff0c;保证每种label的数量一致&#xff0c;使用SVM 或ANN模型训练新数据集。按照高斯分布抽取新数据&#xff0c; 再次使用SVM 或ANN模…

稀疏矩阵的压缩存储--十字链表(转载)

稀疏矩阵的压缩存储--十字链表&#xff08;转载&#xff09;<?xml version"1.0" encoding"UTF-8"?> 来自为知笔记(Wiz)转载于:https://www.cnblogs.com/ZhangJinkun/p/4531626.html

不可思议的数字:互联网每天到底能产生多少数据?

来源&#xff1a;资本实验室随着互联网、传感器&#xff0c;以及各种数字化终端设备的普及&#xff0c;一个万物互联的世界正在成型。同时&#xff0c;随着数据呈现出爆炸式的指数级增长&#xff0c;数字化已经成为构建现代社会的基础力量&#xff0c;并推动着我们走向一个深度…