程序功能设计思路及结构说明:大众情人#includeiostream#includeutility#includecstring#includevector#includealgorithm#define endl n#define ios iossync_with_stdiofalse#define tie cintienullptrcouttienullptrusing namespace s
程序功能:该程序是一个求解最短路径的问题。程序输入一个有向图,图中的每条边都有一个权重值,程序要求找出两个结点集合F和M中,分别使得F中的结点到M中的结点的最短路径的最大值最小,以及M中的结点到F中的结点的最短路径的最大值最小。
设计思路及结构说明:
- 首先,程序定义了一些常量和全局变量,包括图的最大大小、正无穷大的定义、保存结点集合F和M的向量、保存最短路径结果的向量等。
- 接着,程序定义了一个floyd函数,用于求解所有结点之间的最短路径。该函数使用了Floyd-Warshall算法,通过动态规划的方式,不断更新结点之间的最短路径。
- 然后,程序定义了一个solve函数,用于处理输入和输出。在该函数中,首先读入图的大小,然后根据结点的性别将结点分别放入F和M中,并且读入每条边的权重值,构建出有向图。接着,调用floyd函数求解最短路径。
- 接下来,程序使用两个循环分别对F和M中的结点进行遍历,计算F中的结点到M中的结点和M中的结点到F中的结点的最短路径的最大值,并将结果保存到ans向量中。
- 最后,程序对ans向量进行排序,找出两个最大值最小的结点集合,并输出结果。
程序的主要思路是使用Floyd-Warshall算法求解最短路径,然后通过遍历结点集合和计算最短路径的最大值来找到满足条件的结点集合。程序的结构比较清晰,分为了定义常量和全局变量、求解最短路径的函数、处理输入和输出的函数以及主函数
原文地址: https://www.cveoy.top/t/topic/iuiu 著作权归作者所有。请勿转载和采集!