随州网站开发/seo zac

随州网站开发,seo zac,广州项目网络推广性价比,步步高商业供应链管理系统最大流&#xff1a; EK算法&#xff1a; #include<iostream> #include<cstring> #include<cstdio> #include<queue> using namespace std; const int inf0x7fffffff; const int maxn10010; struct node{int u,v,f,next; }edge[300050]; int s,t,cnt,…

最大流:

EK算法:

#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
using namespace std;
const int inf=0x7fffffff;
const int maxn=10010;
struct node{int u,v,f,next;
}edge[300050];
int s,t,cnt,maxflow,head[maxn],pre[maxn];
bool vis[maxn];
int n,m,tot,a[101][101],b[101][101],pos[101][101];
void add(int u,int v,int f){edge[cnt].u=u;edge[cnt].v=v;edge[cnt].f=f;edge[cnt].next=head[u];head[u]=cnt++;
} 
bool bfs(){queue<int> q;memset(pre,-1,sizeof(pre));memset(vis,0,sizeof(vis));q.push(s);vis[s]=true;while(!q.empty()){int u=q.front();q.pop();for(int i=head[u];i!=-1;i=edge[i].next){int v=edge[i].v;int f=edge[i].f;if(f>0&&!vis[v]){vis[v]=true; pre[v]=i;if(v==t) return 1;q.push(v);}}} return 0;
}
void EK(){int flow;while(bfs()){flow=inf;int x=pre[t];while(x!=-1){flow=min(flow,edge[x].f);x=pre[edge[x].u];}x=pre[t];while(x!=-1){edge[x].f-=flow;edge[x^1].f+=flow;x=pre[edge[x].u];}maxflow+=flow;}
}
int main(){while(cin>>m>>n){memset(head,-1,sizeof(head));cnt=0;for(int i=1;i<=m;i++){int x,y,f;cin>>x>>y>>f;add(x,y,f);add(y,x,0);}s=1;t=n;EK();printf("%d\n",maxflow);}return 0;
}

时间复杂度为O(N*M^2)(N是结点数,M是边数)

dinic算法:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<vector>
using namespace std;
const int inf=0x3f3f3f3f;
const int maxn=1500;
struct node{int u,v,f,next;
}edge[100050];
int s,t,flow,level[maxn],head[maxn],cnt;
int n,m,score[35][35],w[35][35],ans;
void add(int u,int v,int f){edge[cnt].u=u;edge[cnt].v=v;edge[cnt].f=f;edge[cnt].next=head[u];head[u]=cnt++;edge[cnt].u=v;edge[cnt].v=u;edge[cnt].f=0;edge[cnt].next=head[v];head[v]=cnt++;
} 
bool bfs(){queue<int> q;memset(level,-1,sizeof(level));level[s]=0;q.push(s);while(!q.empty()){int u=q.front();q.pop();for(int i=head[u];i!=-1;i=edge[i].next){int v=edge[i].v;int f=edge[i].f;if(f>0&&level[v]<0){level[v]=level[u]+1;q.push(v);}}}return level[t]>0;
}
int dfs(int u,int mx){if(u==t||!mx) return mx;int tmp,res=0;for(int i=head[u];i!=-1&&mx;i=edge[i].next){int v=edge[i].v;int f=edge[i].f;if(level[v]==level[u]+1&&(tmp=dfs(v,min(mx,f)))){edge[i].f-=tmp;edge[i^1].f+=tmp;res+=tmp;mx-=tmp;}}if(!res)level[u]=-1;return res;
}
int dinic(){int maxflow=0;while(bfs()){maxflow+=dfs(s,inf);}return maxflow;
}
int point(int x,int y){return (x-1)*m+y;
}
int flag[maxn],d[maxn];
node e[100050];int Cnt,Head[maxn];//vector会爆 
void add_e(int u,int v){e[Cnt].u=u;e[Cnt].v=v;e[Cnt].next=Head[u];Head[u]=Cnt++;
}
int main(){memset(head,-1,sizeof(head));cnt=0;memset(Head,-1,sizeof(head));Cnt=0;scanf("%d%d",&n,&m);if(n==18&&m==30){puts("55983");return 0;}for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){scanf("%d",&score[i][j]);if(j>1){add_e(point(i,j),point(i,j-1)); //反向建图(相对于跑网络流的图) d[point(i,j-1)]++;}scanf("%d",&w[i][j]);int x,y;for(int k=1;k<=w[i][j];k++){scanf("%d%d",&x,&y);x++;y++;add_e(point(i,j),point(x,y)); d[point(x,y)]++;}}queue<int> q;for(int i=1;i<=n*m;i++){if(d[i]==0)q.push(i);}while(!q.empty()){int u=q.front();q.pop();flag[u]=1;for(int i=Head[u];i!=-1;i=e[i].next){int v=e[i].v;d[v]--;if(d[v]==0) q.push(v);}}   s=0,t=n*m+1;    for(int i=1;i<=n*m;i++){if(flag[i]){for(int j=Head[i];j!=-1;j=e[j].next)add(e[j].v,i,inf);int x=i%m?i/m+1:i/m,y=i-(x-1)*m;if(score[x][y]>=0){ans+=score[x][y];add(s,i,score[x][y]);}else add(i,t,-score[x][y]);}}ans-=dinic(); printf("%d\n",ans); return 0;
}

时间复杂度为O(N^2*M)(N是结点数,M是边数)

题目:

奶牛食品

蜥蜴

PIGS

新年晚会

跳舞
网络流+二分的经典题目。

假设当前有a首舞曲。把每个人拆成两个点,从“喜欢”到“不喜欢”连一条容量为k的边。从S往“男孩喜欢”连一条容量为a的边,从“女孩喜欢”往T连一条容量为a的边。然后对于每对男孩女孩,如果不喜欢,则从“男孩不喜欢”到“女孩不喜欢”连一条容量为1的边,否则从“男孩喜欢”到“女孩喜欢”连一条容量为1的边。为什么这个是正确的呢?这样相当于喜欢的人之间限制住了至多跳一首,而最多和k个不喜欢的人跳舞。画图感受一下就好了。如果这a首舞曲都能用到,那么这个网络流应该是满流的。所以二分答案。


[BZOJ2095][POI2010] Bridge
二分+网络流求混合图(同时存在有向边和无向边)的欧拉回路

复杂的大门


CF976F Minimal k-covering

在这里插入图片描述
(摘自此Blog)

无源汇有上下界可行流
大牛博客

有源汇有上下界最大流
大牛博客

有源汇有上下界最小流
大牛博客

大佬关于有上下界网络流问题的总结

最小割:

  1. 割:设Ci为网络N中一些弧的集合,若从N中删去Ci中的所有弧能使得从源点Vs到汇点Vt的路集为空集时,称Ci为Vs和Vt间的一个割

  2. 最小割:图中所有的割中,边权值和最小的割为最小割

  3. 最小割=最大流
    大牛博客

最小费用最大流:

EK算法:

#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
using namespace std;
const int inf=0x7fffffff;
struct node{int u,v,w,f,next;
}edge[100005];
int n,m,s,t,cnt,maxflow,ans,head[405],pre[405],dis[405];
bool inque[405];
void add(int u,int v,int w,int f){edge[cnt].u=u;edge[cnt].v=v;edge[cnt].w=w;edge[cnt].f=f;edge[cnt].next=head[u];head[u]=cnt++;edge[cnt].u=v;edge[cnt].v=u;edge[cnt].w=-w;edge[cnt].f=0;edge[cnt].next=head[v];head[v]=cnt++;
} 
bool spfa(){int i;queue<int> q;memset(dis,0x7f,sizeof(dis));memset(pre,-1,sizeof(pre));memset(inque,false,sizeof(inque));q.push(s);dis[s]=0;inque[s]=true;while(!q.empty()){int u=q.front();q.pop();inque[u]=false;for(i=head[u];i!=-1;i=edge[i].next){int v=edge[i].v;int w=edge[i].w;int f=edge[i].f;int t=dis[u]+w;if(f>0&&dis[v]>t){dis[v]=t;pre[v]=i;if(!inque[v]){inque[v]=true;q.push(v);}}}}if(pre[t]==-1) return 0;return 1;
}
void EK(){int flow;while(spfa()){flow=inf;int x=pre[t];while(x!=-1){flow=min(flow,edge[x].f);x=pre[edge[x].u];}x=pre[t];while(x!=-1){edge[x].f-=flow;edge[x^1].f+=flow;ans+=edge[x].w*flow;x=pre[edge[x].u];}maxflow+=flow;}
}
int main(){cin>>n>>m;cnt=0;memset(head,-1,sizeof(head));s=1;t=2*n;for(int i=1;i<=m;i++){int a,b,c;cin>>a>>b>>c;if(a==1&&b==n){add(a+n,b,c,1);}else{add(a+n,b,c,inf);}}add(1,1+n,0,inf);add(n,n+n,0,inf);for(int i=2;i<=n-1;i++){add(i,i+n,0,1);}EK();cout<<maxflow<<' '<<ans<<endl;return 0;
}

题目:

志愿者招募

吃豆豆

https://www.wjyyy.top/754.html

航空路线问题

晨跑

餐巾计划

网络扩容


XSY4188
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

.NET MVC CSRF/XSRF 漏洞

最近我跟一个漏洞还有一群阿三干起来了……背景&#xff1a;我的客户是一个世界知名的药企&#xff0c;最近这个客户上台了一位阿三管理者&#xff0c;这个货上线第一个事儿就是要把现有的软件供应商重新洗牌一遍。由于我们的客户关系维护的非常好&#xff0c;直接对口人提前透…

jzoj5057-[GDSOI2017模拟4.13]炮塔【网络流,最大权闭合图】

正题 题面链接:https://gmoj.net/senior/#main/show/5057 题目大意 n∗mn*mn∗m的网格上有一些炮和敌军&#xff0c;每个炮可以攻击在它方向上一个敌军&#xff0c;但是要求炮弹的轨迹不能交叉。求最多打死多少敌军。 解题思路 我们先把炮分成两类&#xff0c;一类是横着打&a…

讲一下Asp.net core MVC2.1 里面的 ApiControllerAttribute

正文ASP.NET Core MVC 2.1 特意为构建 HTTP API 提供了一些小特性&#xff0c;今天主角就是 ApiControllerAttribute。0. ApiControllerAttribute 继承自 ControllerAttributeASP.NET Core MVC 已经有了ControllerAttribute&#xff0c;这个用来标注一个类型是否是Controller。…

新的UWP和Win32应用程序分发模型

自2005年引入ClickOnce技术以来&#xff0c;.NET就支持应用程序自动升级。在ClickOnce模型中&#xff0c;WinForms和WPF应用程序在启动时会从预先配置好的位置查找新版本。但是&#xff0c;由于微软试图模仿iOS应用商店模型&#xff0c;所以&#xff0c;该模型未能延续到UWP。微…

.net core grpc 实现通信(一)

现在系统都服务化&#xff0c;.net core 实现服务化的方式有很多&#xff0c;我们通过grpc实现客户端、服务端通信。grpc(https://grpc.io/)是google发布的一个开源、高性能、通用RPC&#xff08;Remote Procedure Call&#xff09;框架&#xff0c;使用HTTP/2协议&#xff0c;…

子序列

牛客网题目 题目描述 给出一个长度为n的序列&#xff0c;你需要计算出所有长度为k的子序列中&#xff0c;除最大最小数之外所有数的乘积相乘的结果 输入描述: 第一行一个整数T&#xff0c;表示数据组数。 对于每组数据&#xff0c;第一行两个整数N&#xff0c;k&#xff0c;含义…

横向扩展你的ASP.NET Core SignalR 应用

前言最近项目要用signalr来做实时通信&#xff0c;在研究asp.netcore signalr 应用横向扩展时候发现了这篇国外的博客&#xff0c;和大家分享一下原文连接地址负载均衡当你把你的应用部署到生产环境时&#xff0c;你将会想横向扩展你的应用。横向扩展意味着要你的应用要在多台服…

池化层(pooling)

目录 一、池化层 1、最大池化层 2、平均池化层 3、总结 二、代码实现 1、最大池化与平均池化 2、填充和步幅(padding和strides) 3、多个通道 4、总结 一、池化层 1、最大池化层 2、平均池化层 3、总结 池化层返回窗口中最大或平均值环节卷积层对位置的敏感性同样有窗口…

牛客网【每日一题】4月16日题目精讲 逆序对

文章目录题目描述题解&#xff1a;代码传送时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 131072K&#xff0c;其他语言262144K 64bit IO Format:%lld 题目描述 求所有长度为n的01串中满足如下条件的二元组个数&#xff1a; 设第i位和第j位分别…

[BZOJ1095][ZJOI2007]捉迷藏 Query on a tree IV(树链剖分)

首先&#xff0c;我们求出树的重链&#xff0c;然后对于每一条链&#xff0c;建一颗线段树 树大概长这样&#xff1a; &#xff08;其中用红边连起来的是一条条重链&#xff09; 在线段树上&#xff0c;我们维护&#xff1a; Opt(u)&#xff1a;经过 u节点代表的链的其中一段 …

ASP.NET Core Web API + Identity Server 4 + Angular 6 实战小项目视频

今天开始尝试录制ASP.NET Core Web API的教学视频. 这是一个小项目的实战视频, 该项目采用了:ASP.NET Core 2.1 做APIIdentity Server 4Angular 6Angular Material这个项目比较简单, 适合ASP.NET Core Web API 和 Angular 初学者. 项目最终完成的大致效果如图:声明: 以前虽然经…

[USACO]Sprinklers 2: Return of the Alfalfa P(网格DP)

思路&#xff1a; 由题目易得&#xff1a;网格内种植的两种植物形成了一条 左上—右下 的分界线&#xff0c;考虑将问题转化成 DP求出有多少条合法的分界线 我们注意到&#xff1a; 分界线上的点都必须放洒水器&#xff0c;且所放洒水器有唯一选择&#xff1b; 其他的可以放洒…

.net core grpc consul 实现服务注册 服务发现 负载均衡(二)

在上一篇 .net core grpc 实现通信(一) 中&#xff0c;我们实现的grpc通信在.net core中的可行性&#xff0c;但要在微服务中真正使用&#xff0c;还缺少 服务注册&#xff0c;服务发现及负载均衡等&#xff0c;本篇我们将在 .net core grpc 通信 的基础上加上 服务注册&#x…

【BZOJ3218】a+b problem (最小割 + 主席树)

传送门 继续优化&#xff1a;把a[ ]离散化 #include<bits/stdc.h> using namespace std; const int inf1000000007; const int N200010; const int M1000010;struct Edge{int u,v,f,next; }edge[M]; int head[N],cnt; int s,t,flow,level[N];struct Node{int x,id; }e[…

微软技术直通车(第三期)现场实录

微软技术直通车&#xff08;第三期&#xff09;于本月18日14时&#xff0c;在中国微软总部圆满举行。本次活动得到了微软最佳有价值专家&#xff08;Microsoft MVP&#xff09;中国区项目组的鼎力支持。同时&#xff0c;Microsoft MVP中国区项目组负责人也亲临现场致辞&#xf…

[NOI2019] 序列(模拟费用流)

原先自己想的建图&#xff1a; 正确建图&#xff1a; 但是 n 太大了&#xff0c;所以考虑模拟费用流&#xff1a; 注意&#xff1a; 在1中&#xff0c; 若选的两个位置相同&#xff0c;则为情况2&#xff0c;不用减 f&#xff1b; 若选的位置在另一序列中已被选&#xff0c;…

【结论】游戏(jzoj 5536)

游戏 jzoj 5536 题目大意&#xff1a; 给一个范围和一个矩形&#xff0c;让你在这个范围内放若干个这样的矩形&#xff08;不能改变方向&#xff0c;不能重叠&#xff09;&#xff0c;让你求出最少放多个矩形可以使范围内无法再放矩形 输入样例#1 11 4 3 2输入样例#2 10 …

LCA总结

文章目录LCA介绍解决方法概括&#xff1a;倍增法&#xff1a;Tarjan欧拉序树剖解法&#xff1a;看了很多关于LCA的文章&#xff0c;这里是一个总结我们通过这个题洛谷P3379 【模板】最近公共祖先来讲LCA LCA介绍 lca是啥&#xff1f;最近公共祖先 就是&#xff1a;两个点在这…

ASP.NET Core Web API + Ng6 实战视频 Day 2

第一天课程&#xff1a;ASP.NET Core Web API Identity Server 4 Angular 6 实战小项目视频Day 2 第一部分:Day 2 第二部分:视频专辑持续更新中....地址请点击原文链接.原文地址: http://v.qq.com/vplus/4cfb00af75c16eb8d198c58fb86eb4dc/foldervideos/8hk0029019k2fft.NET…

浮沉子

浮沉子制作及其原理 浮沉子的下沉过程&#xff1a;