技术标签: 图论-----------网络流 模板
最大流算法的Edmonds-Karp算法,Maxflow返回最大流的值
#include<bits/stdc++.h>
using namespace std;
const int inf=2e9;
const int maxn=1005;
struct Edge{
int from,to,cap,flow;
Edge(int u,int v,int c,int f):from(u),to(v),cap(c),flow(f){}
};
struct Dinic{
int n,m,s,t;
vector<Edge> edges;
vector<int> g[maxn];
bool vis[maxn];
int d[maxn];
int cur[maxn];
void init(int n){
this->n=n;
for(int i=0;i<=n;i++) g[i].clear();
edges.clear();
}
void add(int from,int to,int cap){
edges.push_back(Edge(from,to,cap,0));
edges.push_back(Edge(to,from,0,0));
m=edges.size();
g[from].push_back(m-2);
g[to].push_back(m-1);
}
bool BFS(){
memset(vis,0,sizeof(vis));
queue<int> que;
que.push(s);
d[s]=0;
vis[s]=1;
while(!que.empty()){
int x=que.front();que.pop();
for(int i=0;i<g[x].size();++i){
Edge& e=edges[g[x][i]];
if(!vis[e.to] && e.cap>e.flow){
vis[e.to]=1;
d[e.to]=d[x]+1;
que.push(e.to);
}
}
}
return vis[t];
}
int DFS(int x,int a){
if(x==t || a==0) return a;
int flow=0,f;
for(int& i=cur[x];i<g[x].size();++i){
Edge& e=edges[g[x][i]];
if(d[x]+1==d[e.to] && (f=DFS(e.to,min(a,e.cap-e.flow)))>0){
e.flow+=f;
edges[g[x][i]^1].flow-=f;
flow+=f;
a-=f;
if(a==0) break;
}
}
return flow;
}
int Maxflow(int s,int t){
this->s=s;this->t=t;
int flow=0;
while(BFS()){
memset(cur,0,sizeof(cur));
flow+=DFS(s,inf);
}
return flow;
}
};
我用的播放器是KMedia,一个开源的播放器,链接如下https://github.com/BlackQi/KMedia我个人觉得还是很好用的,支持定制。现在遇到一个问题就是播放时横屏铺满全屏视频被拉伸的问题(我们的视频比例为16:9 也就是1.778:1)。由于该播放器没有提供屏幕比例调整的api,所以就只能自己搞了。思路,原本是想直接一刀切:横屏时把window的尺寸调整一下,那window所包含的内容不就直接改了吗 也不用过多的调整UI,而且好用的一点是window调整之后会以屏幕居中,就
一.java的io流java为了实现一个好的输入输出系统提供了大量的类,这些类都被封装到了java的io包中,我们可以通过import java.io.*进行引入.在讲java的io流之前必须要明白java的File类,该类叫文件类,该类的可以理解为将一个实体文件封装成为了一个文件对象,从而可以通过调用相关的属性和方法对文件进行操作.将一个文件封装为一个File对象的代码如下:imp...
前言:本实例基于纯html和css3,不需要任何插件,可以作为新手参考!第一部分1.0 主要实现了:点击菜单改变颜色、下拉选择菜单、div选项卡、div相对布局等话不多说,先上图:图一:图二:1.1 代码部分1.11 HTML部分(Index.html)&lt;!DOCTYPE html&gt;&lt;html&gt; &lt;head&gt; ...
内容代码<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layou
第一步:登录百度图片官网,截图如下所示:注意点一:开头必须是https(如上图所示,出现锁的标志),不能是http,否则后期下载图片文件会出错第二步:输入关键字,页面加载出来之后,按F12进入开发者模式,由于百度图片ajax动态加载,点击network选项卡,重新刷新页面,查看XHR数据,截图如下所示:第三步:分析多个XHR,得出规律,每一个页面所请求的url所携带的参数只有pn,rn,...
参考:https://blog.csdn.net/qq_42825420/article/details/105690039官方汉化包:https://ximoqing.lanzous.com/i90zTdv3d8d
开发环境:Qt 5.4.1 + VS2010在我的项目中用到了一个第三方的库。编译时报错:C2664: “LoadLibraryW”: 不能将参数 1 从“const char *”转换为“LPCWSTR” 解决办法,在报错的 C 文件的开头加上:#undef UNICODE
【10】Objective-C 基础语法详解Objective-C语法之第一个iPhone应用程序获取手机屏幕尺寸的方法//得到屏幕的宽和高CGRect rect=[[UIScreen mainScreen] bounds];CGSize size = rect.size;int screenWidth = size.width;int screen
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋气的Brunch(早午餐),并和他们面对面,围绕某个课题探讨技术。别看扫地僧这个名字很接地气,他们的真实身份大多是博士、Fellow和教授,都是来自华为各领域最顶尖、最优秀的技术专家。构建一云两翼双引擎+开放的生态在1月8日的华为开发者大会2020(Cloud)媒体预沟通会...
怎么把模糊的图片修复清晰呢?当大家拍摄照片时,如果你不小心晃动了相机,或者你的相机不够稳定,那么你的照片可能会模糊不清。此外,如果你的镜头没有清洁干净,或者你的光线不足,照片也可能会变得模糊。快门速度过慢也可能导致照片模糊,因为它允许相机在拍摄时保持开放状态的时间太长。我们想要修复模糊的图片应该怎么做呢?给大家分享两种简单好用的修复方法,一起来看看吧。方法一:智能修复老照片第一种方法是使用一个专业的图片修复工具,它可以有效地恢复老照片的质量,让模糊的图像变得清晰。这个功能的优点在于:节省时间和精力无需专业技
你知道C++头文件是什么吗?快来看看吧!
python生成一组二进制1024位和512位数的大质数对前些天同学求助: 用python生成一组二进制1024位与512位数的大素数对,要求1024位的质数减一后可以整除512位数,经过两天鏖战后成功,在这里总结一下思路与代码。一. 生成大素数解决这个问题首先需要生成大素数,一个二进制的1024位数大概相当于300位十进制位数,运用穷举法最多可能跑到1亿(9位十进制数)这种单位,...