![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
8aceMaker
YoungChigga
展开
-
树链剖分板子(c++)
树链剖分板子(c++)原创 2022-07-22 19:32:26 · 324 阅读 · 0 评论 -
太空飞行计划LibreOJ - 6001(网络流24题)(最大权闭合图)
m是实验数,n是仪器数。接下来的m行,每行是一个实验的有关数据。接着是该实验需要用到的若干仪器的编号。最后一行的n个数是配置每个仪器的费用。W教授的任务是找出一个有效算法,确定在一次太空飞行中要进行哪些实验并因此而配置哪些仪器才能使太空飞行的净收益最大。这里净收益是指进行实验所获得的全部收入与配置仪器的全部费用的差额。第1行是实验编号,第2行是仪器编号,数字之间用一个空格隔开。对于给定的实验和仪器配置情况,编程找出净收益最大的试验计划。,和进行这些实验需要使用的全部仪器的集合。...原创 2022-07-15 15:28:13 · 142 阅读 · 0 评论 -
搭配飞行员LibreOJ - 6000(网络流24题)(二分图最大匹配)
题目描述飞行大队有若干个来自各地的驾驶员,专门驾驶一种型号的飞机,这种飞机每架有两个驾驶员,需一个正驾驶员和一个副驾驶员。由于种种原因,例如相互配合的问题,有些驾驶员不能在同一架飞机上飞行,问如何搭配驾驶员才能使出航的飞机最多。因为驾驶工作分工严格,两个正驾驶员或两个副驾驶员都不能同机飞行。输入格式第一行,两个整数 n 与 m,表示共有 n 个飞行员,其中有 m 名飞行员是正驾驶员。下面有若干行,每行有 2 个数字 a、b。表示正驾驶员 a 和副驾驶员 b 可以同机飞行。注:正驾驶员的编号在前,即正驾驶原创 2022-07-11 16:37:12 · 114 阅读 · 0 评论 -
网络流(最大流,dininc,费用流,上下界网络流)
最大流EK算法: Dinic算法:c++98 dinic费用流c++14有负边的费用流原创 2022-07-11 16:11:47 · 454 阅读 · 0 评论 -
二分图的最大匹配
增广路算法O(nm)原创 2022-07-07 16:48:30 · 51 阅读 · 0 评论 -
图的连通性
tarjanc++14 c++98原创 2022-07-06 15:53:11 · 245 阅读 · 0 评论 -
Drainage Ditches(网络流)
题意:将水从池塘(1)通过沟渠输送到溪流(M),期中有多个调节器(节点)可以调节水流,每条沟渠有最大流速,问水从池塘中排到溪流的最大速率。分析,这题是一道很典型的图论网络流问题,按照题目所给边建图之后直接用最大流Dinic算法即可,注意多组输入!!!ac代码:/* author:wuzx */ #include<iostream>#include<algorithm>#include<cstring>#include<cmath>原创 2022-01-14 20:39:31 · 80 阅读 · 0 评论 -
最短路算法c++(dijsktra,floyd,spfa)
floyd,复杂度O(n^3)void floyd(int s,int e)//start end{ for(int k=1;k<=n;k++) { for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(g[i][j]>g[i][k]+g[k][j]) g[i..原创 2021-12-04 19:24:50 · 1050 阅读 · 0 评论 -
分配问题(最小费用最大流)
题目:有 n 件工作要分配给 n 个人做。第 i个人做第 j件工作产生的效益为 。试设计一个将 n件工作分配给 n个人做的分配方案,使产生的总效益最大。分析:这是一道多解法问题,可以用带剪枝的搜索和图论的最小费用最大流的方法来做,本文才去最小费用最大流的方法进行解决。思路:设立一个源点(2n+1)和汇点(2n+2),建图,以源点(2n+1)向每个人分别连边,每条边容量cap是1,费用cost为0,再让每个人向每件工作分别连边,每条边容量是1,费用为最后让每件工作向汇点(2n+2...原创 2022-01-14 20:57:04 · 676 阅读 · 0 评论 -
假期的宿舍(最大流Dinic)
题意:n后面第一行数据为0的是外校学生,为1的是本校学生,第二行为0则且第一行为1的为本校留校学生,第二行为1切第一行为1的为本校离校学生,每个学生可以睡自己(当学生为本校学生)和认识的人的床,问能否做到每个人(外校学生+本校留校学生)都有床睡。再下面的n * n矩阵为学生i和学生j的关系,1为朋友,0为陌生人。分析:这是一个最大流问题,我们可以利用最大流算法计算出有多少张床能被人睡。思路:以2n+1为源点,2n+2为汇点,建图:先以每张床为起点,汇点为终点建边,费用为1;再以源点为起点原创 2022-01-14 21:17:50 · 162 阅读 · 1 评论