一级标题
二级标题
三级标题
无序列表:
- 1、xxx
- 2、xxx
- 3、xxx
有序列表:
- qwq
- qwq
- qwq
引用
插入链接:
插入图片:
貌似图片大了点……
加粗文字
斜体文字
一行代码:int f
一坨代码:
#include <bits/stdc++.h>
#define int long long
const int maxn=2e5+10;
using namespace std;
int n,m,s,t,u,v,w,ans,cnt=1;
int dep[maxn],fir[maxn];
struct edge{int v,w,nt;}e[maxn*2];
queue <int> q;
void into(int u1,int v1,int w1) {e[++cnt].v=v1;e[cnt].w=w1;e[cnt].nt=fir[u1];fir[u1]=cnt;}
bool bfs()
{
memset(dep,0,sizeof(dep));
q.push(s);dep[s]=1;
while(!q.empty())
{
int u=q.front();q.pop();
for(int i=fir[u];i;i=e[i].nt)
if(e[i].w&&!dep[e[i].v])
{
dep[e[i].v]=dep[u]+1;
q.push(e[i].v);
}
}
return dep[t];
}
int dfs(int u,int in)
{
if(u==t) return in;
int out=0;
for(int i=fir[u];i&∈i=e[i].nt)
if(e[i].w&&dep[e[i].v]==dep[u]+1)
{
int res=dfs(e[i].v,min(e[i].w,in));
e[i].w-=res;e[i^1].w+=res;
in-=res;out+=res;
}
if(!out) dep[u]=0; return out;
}
signed main()
{
cin>>n>>m>>s>>t;for(int i=1;i<=m;i++){cin>>u>>v>>w;into(u,v,w);into(v,u,0);}
while(bfs()) ans+=dfs(s,1e18);
cout<<ans<<endl;return 0;
}
换行1
换行2
换行3
下面是分界线:
行内数学公式:
\(a\equiv1\pmod{m}\)