package moduloVII;
import java.io.*;
import java.util.StringTokenizer;
public class M {
static final int WHITE = 0, GRAY = 1;
static double[][] flow;
static int[][] capacity;
static double[][] res_capacity;
static int[] parent, color, queue;
static double[] min_capacity;
static int first, last;
public static void main(String args[]) {
String frase;
while ( ((frase=readLn(20))!=null) ) {
StringTokenizer linha= new StringTokenizer(frase.trim());
int n=Integer.parseInt(linha.nextToken()); //Num de vertices
int m=Integer.parseInt(linha.nextToken()); //Num de liga僖es
capacity=new int[n+1][n+1];
//Vertice de Origem | Vertice de Destino | Peso da liga頒o
for(int i=0; i<m; i++){
StringTokenizer le= new StringTokenizer(readLn(50).trim());
int origem= Integer.parseInt(le.nextToken());
int destino= Integer.parseInt(le.nextToken());
int pesoLigacao=Integer.parseInt(le.nextToken());
capacity[origem][destino] = pesoLigacao;
}
//Argumentos: origem, destino, tamanho
int maxFlow=EdmondsKarp(1, n, n+1);
System.out.println(maxFlow);
}
}
public static int EdmondsKarp(int origem, int destino, int tam){
int max_flow=0;
flow = new double[tam][tam];
res_capacity = new double[tam][tam];
parent = new int[tam];
min_capacity = new double[tam];
color = new int[tam];
queue = new int[tam];
for (int i = 0; i < tam; i++)
for (int j = 0; j < tam; j++)
res_capacity[i][j] = capacity[i][j];
while (BFS(origem, destino, tam)){
max_flow += min_capacity[destino];
int v = destino, u;
while (v != origem){
u = parent[v];
flow[u][v] += min_capacity[destino];
flow[v][u] -= min_capacity[destino];
res_capacity[u][v] -= min_capacity[destino];
res_capacity[v][u] += min_capacity[destino];
v = u;
}
}
return max_flow;
}
// Breadth First Search
public static boolean BFS(int origem, int destino, int tam){
for (int i = 0; i < tam; i++){
color[i] = WHITE;
min_capacity[i] = Double.MAX_VALUE;
}
first = last = 0;
queue[last++] = origem;
color[origem] = GRAY;
while (first != last){ // While "queue" not empty..
int v = queue[first++];
for (int u = 0; u < tam; u++)
if (color[u] == WHITE && res_capacity[v][u] > 0){
min_capacity[u] = Math.min(min_capacity[v], res_capacity[v][u]);
parent[u] = v;
color[u] = GRAY;
if (u == destino)
return true;
queue[last++] = u;
}
}
return false;
}
static String readLn (int maxLg){
byte lin[] = new byte [maxLg];
int lg = 0, car = -1;
String line = "";
try {
while (lg < maxLg){
car = System.in.read();
if ((car < 0) || (car == '\n')) break;
lin [lg++] += car;
}
}
catch (IOException e){
return (null);
}
if ((car < 0) && (lg == 0)) return (null); // eof
return (new String (lin, 0, lg));
}
}
刘良运
- 粉丝: 80
- 资源: 1万+
最新资源
- 四通道电子负载,电池容量测试仪器,全套资料,包含,原理图pcb 和bom程序源码非常全和宝贵资料
- 有需要学习基于分布式驱动电动汽车的搭建,附着系数估计,车辆状态参数估计(包括扩展卡尔曼,无迹卡尔曼,容积卡尔曼,高阶容积卡尔曼,平方根容积卡尔曼等方法)和电机无传感器控制等方向的内容
- 蒙特卡洛模拟研究,CFA模型,SEM模型,潜变量增长模型,统计功效,样本量,模拟研究 在matlab中用蒙特卡洛算法对电动汽车充电负荷进行模拟,可自己修改电动汽车数量,lunwen复现 参考lun
- 基于分布式驱动电动汽车的车辆状态估计,采用的是容积卡尔曼(ckf)观测器,可估计包括纵向速度,质心侧偏角,横摆角速度,侧倾角四个状态 模型中第一个模块是四轮驱动电机;第二个模块是carsim输出的真
- 七自由度整车模型 分别采用魔术公式和dugoff 两种轮胎模型建立的七自由度整车模型 包含模型所有文件和魔术公式轮胎模型和说明文档以及参考资料 本模型可进行角阶跃、制动、等速圆周等工况验证 可加入相应
- MATLAB Simulink仿真平台,蓄电池控制 包括蓄电池双向DC DC控制,采用电压外环电流内环控制,使输出电压稳定,也可采用功率外环电流内环控制,使输出功率稳定
- 自动驾驶,carsim,simulink联合仿真,基于lqr算法的路径跟踪控制, carsim2019,matlab2018,以上
- 基于深度强化学习的混合动力汽车能量管理策略 1.利用DQN算法控制电池和发动机发电机组的功率分配 2.状态量为需求功率和SOC,控制量为EGS功率 3.奖励函数设置为等效油耗和SOC维持
- FMCW激光雷达 正弦波 三角波 目标检测 双模调制
- 安-川7-内部资料,包含源码与详细说明,以及运行环境软件. 电流环扰动观测器、速度补偿、摩擦扰动观测器、标幺化计算、转矩补偿、位置环、速度环、电流环 三环分析、参数计算.....
- (Matlab)基于贝叶斯(bayes)优化卷积神经网络-门控循环单元(CNN-GRU)回归预测,BO-CNN-GRU Bayes-CNN-GRU多输入单输出模型 1.优化参数为:学习率,隐含层节点
- 运动控制卡 倒R角程序 G代码 halcon联合运动控制卡联合相机 运动控制卡内容: 回原点 单轴运动 速度控制 位置控制 直线插补 圆弧插补 直线圆弧插补 G代码计算 根据输入参数生产R角参数,并且
- C#联合halcon深度学习源码 继电器识别 在halcon等图像处理算法不稳定的情况下,需要用深度学习来解决 下面这个案例非常有参考价值,是基于深度学习来识别工厂的零件 因为这个零件种类比较多
- 永磁同步电机基于SVPWM改进的直接转矩控制 针对传统直接转矩控制存在的转矩脉动大、采样率高等问题,基于SVPWM改进的DTC可以解决上述存在的问题 模型仿真效果良好,可提供和对应的参考文献,适合入
- C#联合halcon条形码识别源代码 缺陷检测 飞拿 海康相机 海康相机,传感器检测到条形码后,触发相机拿照,识别二wei码,查找二wei码缺陷,发现缺陷后,通过串口发送指令停机并且报告
- 基于 Qt5.14+OpenCV4.6.0 的通用化视觉软件,qt编译器直接运行, qt编译器直接运行 支持多相机多线程,每个工具都是单独的DLL,主程序通过 公用的接口访问以及加载各个工具 算法工
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈