刘汝佳dicnic模板
2024-09-05 07:44:59
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<queue>
#include<cstring>
#define mp make_pair
#define pb push_back
#define first fi
#define second se
#define pw(x) (1ll << (x))
#define sz(x) ((int)(x).size())
#define all(x) (x).begin(),(x).end()
#define rep(i,l,r) for(int i=(l);i<(r);i++)
#define per(i,r,l) for(int i=(r);i>=(l);i--)
#define FOR(i,l,r) for(int i=(l);i<=(r);i++)
#define eps 1e-9
#define PIE acos(-1)
#define cl(a,b) memset(a,b,sizeof(a))
#define fastio ios::sync_with_stdio(false);cin.tie(0);
#define lson l , mid , ls
#define rson mid + 1 , r , rs
#define ls (rt<<1)
#define rs (ls|1)
#define INF 0x3f3f3f3f
#define LINF 0x3f3f3f3f3f3f3f3f
#define freopen freopen("in.txt","r",stdin);
#define cfin ifstream cin("in.txt");
#define lowbit(x) (x&(-x))
#define sqr(a) a*a
#define ll long long
#define ull unsigned long long
#define vi vector<int>
#define pii pair<int, int>
#define dd(x) cout << #x << " = " << (x) << ", "
#define de(x) cout << #x << " = " << (x) << "\n"
#define endl "\n"
using namespace std;
//**********************************
struct Edge{
int from,to,cap,flow;
}edge;
void addedge(int from,int to,int cap)
{
edge.pb((Edge){from,to,cap,});
edge.pb((Edge){to,from,,});
m=sz(edge);
G[from].pb(m-);G[to].pb(m-);
}
struct Dinic{
int n,m,s,t;
vector<Edge>edge;
vi G[maxn];
int d[maxn];
int cur[maxn];
bool bfs()
{
cl(vis,);
queue<int>Q;
d[s]=;vis[s]=;Q.push(s);
while(!Q.empty()){
int x=Q.front();Q.pop();
rep(i,,sz(G[x])){
if(!vis[e.to]&&e.cap>e.flow){
vis[e.to]=;
d[e.to]=d[x]+;
Q.push(e.to);
}
}
}
return vis[t];
}
int dfs(int x,int a)
{
if(x==t||a==)return a;
int flow=,f;
rep(i,cur[x],sz(G[x])){
cur[x]=i;
Edge& e=edge[G[x][i]];
if(d[x]+==d[e.to]&&(f=dfs(e.to,min(a,e.cap-e.flow)))>){
e.flow+=f;
edge[G[x][i]^].flow-=f;
flow+=f;
a-=f;
if(a==)break;
}
}
return flow;
}
int Maxflow(int s,int t)
{
this->s=s;this->t=t;
int flow=;
while(bfs()){
cl(cur,);
flow+=dfs(s,INF);
}
return flow;
}
};
//********************************** //**********************************
int main()
{ return ;
}
最新文章
- 学习PYTHON之路, DAY 8 - PYTHON 基础 8 (面向对象进阶)
- 搞ACM的你们伤不起
- Oracle SQL 调优之 sqlhc
- JavaWeb学习记录(十九)——开发JSTL自定义标签
- 禁用windows 10自动更新
- La=LaULb (单链表)
- 在Sublime Text3中运行PHP代码
- Linux-exec命令试验驱动(12)
- 搞懂Linux下的几种文件类型
- 008_python内置语法
- 进程有一个全局变量i,还有有两个线程。i++在两个线程里边分别执行100次,能得到的最大值和最小值分别是多少?
- 【JS】for in循环对象,hasOwnProperty()的作用
- 【opencv基础】OpenCV从Mat中提取某些行或列
- PHP-Yii执行流程分析(源码)
- ubuntu samba 安装
- BitArray类的使用--(转换二进制数的内部实现过程)
- HDU.2640 Queuing (矩阵快速幂)
- 妈妈再也不用担心我使用git了
- GOOGLE机器学习速成班
- WKWebView 屏蔽长按手势 - iOS
热门文章
- git遇到的问题记录2019.05.07
- 浏览器本质上是解析器javascript
- Python与C/C++相互调用(转)
- 【python+selenium】selenium grid(分布式)
- Delphi 声明特性
- 《浏览器工作原理与实践》<;07>;变量提升:JavaScript代码是按顺序执行的吗?
- CAFFE(0):Ubuntu 下安装anaconda2和anaconda3
- shell变量引用
- 认识Caffe与Caffe2
- ACM-ICPC 2019南昌网络赛I题 Yukino With Subinterval