连接:http://poj.org/problem?id=3164
Time Limit: 1000MS | Memory Limit: 131072K | |
Total Submissions: 10061 | Accepted: 2930 |
Description
After a long lasting war on words, a war on arms finally breaks out between littleken’s and KnuthOcean’s kingdoms. A sudden and violent assault by KnuthOcean’s force has rendered a total failure of littleken’s command network. A provisional network must be built immediately. littleken orders snoopy to take charge of the project.
With the situation studied to every detail, snoopy believes that the most urgent point is to enable littenken’s commands to reach every disconnected node in the destroyed network and decides on a plan to build a unidirectional communication network. The nodes are distributed on a plane. If littleken’s commands are to be able to be delivered directly from a node A to another node B, a wire will have to be built along the straight line segment connecting the two nodes. Since it’s in wartime, not between all pairs of nodes can wires be built. snoopy wants the plan to require the shortest total length of wires so that the construction can be done very soon.
Input
The input contains several test cases. Each test case starts with a line containing two integer N (N ≤ 100), the number of nodes in the destroyed network, and M (M ≤ 104), the number of pairs of nodes between which a wire can be built. The next N lines each contain an ordered pair xi and yi, giving the Cartesian coordinates of the nodes. Then follow M lines each containing two integers i and j between 1 and N (inclusive) meaning a wire can be built between node i and node j for unidirectional command delivery from the former to the latter. littleken’s headquarter is always located at node 1. Process to end of file.
Output
For each test case, output exactly one line containing the shortest total length of wires to two digits past the decimal point. In the cases that such a network does not exist, just output ‘poor snoopy
’.
Sample Input
4 6 0 6 4 6 0 0 7 20 1 2 1 3 2 3 3 4 3 1 3 2 4 3 0 0 1 0 0 1 1 2 1 3 4 1 2 3
Sample Output
31.19 poor snoopy
#include <algorithm> #include <iostream> #include <cstdlib> #include <cstring> #include <cstdio> #include <cmath> using namespace std; #define MAXN 110 #define inf 1000000000 struct Node { double x; double y; }node[MAXN]; int n, m; bool visited[MAXN], circle[MAXN]; int pre[MAXN]; double graph[MAXN][MAXN]; inline double dist(int i, int j) { return sqrt((node[i].x-node[j].x)*(node[i].x-node[j].x) + (node[i].y - node[j].y)*(node[i].y - node[j].y)); } inline double min(double a, double b) { if ( a < b)return a; return b; } void dfs(int u) //深搜,判断是否存在最小树形图 ,根是否可达每个结点 { int i; if (visited[u])return; visited[u] = true; for (i = 1; i <= n; i++)if (!visited[i] && graph[u][i] != inf)dfs(i); } bool connect(int root) //深搜,判断是否存在最小树形图 ,根是否可达每个结点 { int i; dfs(root); for (i = 1; i <= n; i++)if (!visited[i])return false; return true; } //--------------------------朱刘算法 double zhuliu(int root) { int i, j, k; double ans = 0; memset(circle,0,sizeof(circle)); //如果某点被删掉,那么circle[i]=1 while (1) { //-----------------求出除根点为root外的所有点的入边的最小值 for (i = 1; i <= n; i++) { if(i==root)continue; if (circle[i])continue; graph[i][i] = inf; //把图中所有的自环全都清除,很重要!!! pre[i] = i; //初始化自己的前一节点是自己 for (j = 1; j <= n; j++) // 求i的入边的最小值 { if (circle[j])continue; if (graph[j][i] < graph[pre[i]][i])pre[i] = j; } } //-------------------遍历找环 for (i = 1; i <= n; i++) { if(i==root)continue; if (circle[i])continue; j = i; memset(visited,false,sizeof(visited)); while (!visited[j] && j != root) { visited[j] = true; j = pre[j]; } if (j == root)continue;//j==root说明i不在环上 i = j; //找到了环 ans += graph[pre[i]][i]; for (j = pre[i]; j != i; j = pre[j]) { ans += graph[pre[j]][j]; circle[j] = 1; //用环上一点i代表此环,其他点删去,即circle[j]=1 } //判断环外的每个点A是否与环中的某个点B相连,若是相连的则改变其权值,变为graph<A,B>-graph<pre[B],B> for (j = 1; j <= n; j++) { if (circle[j])continue; if (graph[j][i] != inf)graph[j][i] -= graph[pre[i]][i]; //更新j的入边 } for (j = pre[i]; j != i; j = pre[j]) //环上所有点的最优边为人工顶点的边 { for (k = 1; k <= n; k++) { if (circle[k])continue; if (graph[j][k] != inf)graph[i][k] = min(graph[i][k],graph[j][k]); if (graph[k][j] != inf)graph[k][i] = min(graph[k][i],graph[k][j] - graph[pre[j]][j]); } } break; } if (i > n) { for (j = 1; j <= n; j++) //新图树形图的权加环的权 { if(j==root)continue; if (circle[j])continue; ans += graph[pre[j]][j]; } break; } } return ans; } int main() { int i, j, u, v; // freopen("in.txt","r",stdin); while(scanf("%d %d",&n,&m) != EOF) { for (i = 1; i <= n; i++)scanf("%lf %lf",&node[i].x,&node[i].y); for (i = 1; i <= n; i++)for (j = 1; j <= n; j++)graph[i][j] = inf; while (m--) { scanf("%d %d",&u,&v); graph[u][v] = dist(u,v); } memset(visited,false,sizeof(visited)); int root=1; if (!connect(root))printf("poor snoopy\n"); else printf("%.2lf\n",zhuliu(root)); } return 0; }
相关推荐
#### 3164 Command Network - 最小树形图 - **知识点**:最小树形图问题,一种特殊的图论问题。 #### 3169 Layout - 差分约束 - **知识点**:差分约束系统。 #### 3177 Redundant Paths - 双联通分量 - **知识...
内容概要:本文探讨了高吞吐量网络链路异常检测中流量采样技术的应用及其效果。面对现代分布式信息系统频繁遭受的网络安全威胁,特别是互联网服务提供商(ISP)面临的威胁,作者提出一种通过减少数据采样频率以降低异常检测计算复杂度的方法。文中介绍了实验环境、系统架构、采用的数据聚合与采样方法以及用于检测异常的人工智能模型(基于自编码器神经网络)。通过对一个真实中型ISP生产环境中实际网络流量数据进行研究,该研究展示了即使在较低采样频率情况下仍能保持较高的异常检测准确性,尤其是针对持续时间较长的DDoS攻击更为显著。此外,论文还验证了所提系统的有效性和应用潜力,为构建高效的网络安全监控机制提供了新思路。 适用人群:对于计算机网络安全、数据分析或机器学习有兴趣的研究人员和从业人员,特别是那些专注于提高异常检测性能和应对高流量数据流的技术人员。 使用场景及目标:适用于希望在不影响业务操作的前提下引入额外层次防护措施的企业级网络管理员;研究者可参考本文中提出的流量预处理方式来探索不同的统计分布和采样间隔设置;企业可以通过部署该类系统快速响应潜在的安全事件并降低成本。
unity ui画线插件
内容概要:本文研究了在基于正交频分多址接入(OFDMA)的中继网络中进行带有比例公平性的下行链路资源分配问题。作者们通过联合优化中继选择、子载波分配和功率分配问题,并采用拉格朗日对偶分解方法求解这一复杂的NP完全问题。实验结果显示所提出的算法相较于启发式算法能显著提高系统吞吐量,并带来更好的用户间公平性。 适合人群:通信工程、无线网络优化、电信行业研发工程师和研究人员。 使用场景及目标:主要应用于提升4G移动通信系统的频谱效率及缓解频率选择衰落的问题,确保多用户之间的传输速率更加公平。同时适用于研究OFDMA技术及其相关领域的学者和技术专家。 其他说明:文中提供了详细的数学模型和模拟结果图表支持理论发现,并讨论了各种假设条件下的性能对比。此外还探讨了连续松弛技巧在解决NP完全问题时的应用价值以及通过调整算法参数来获得近似最优解的方法论意义。
程序系统设计]MATLAB打印纸缺陷检测GUI(不同缺陷类型,GUI界面) [程序系统设计]MATLAB打印纸缺陷检测GUI(不同缺陷类型,GUI界面) [程序系统设计]MATLAB打印纸缺陷检测GUI(不同缺陷类型,GUI界面) [程序系统设计]MATLAB打印纸缺陷检测GUI(不同缺陷类型,GUI界面) [程序系统设计]MATLAB打印纸缺陷检测GUI(不同缺陷类型,GUI界面)
邮件分拣组态王6.55和西门子S7-200plc联机程序2023,带io表,运行效果视频 ,邮件分拣; 组态王6.55; 西门子S7-200plc; 联机程序2023; IO表; 运行效果视频,邮件分拣组态王6.55与S7-200PLC联机程序2023版:带IO表运行效果视频
内容概要:本文提出了一种新的基于跨时间差异(CTD)注意力机制的变化检测方法(称为CTD-Former),用于高效地提取多时相遥感图像中的变化特征。作者重新审视了自注意力机制并深入挖掘多时间相位图像间的关系变化,构建CTD变压器编码器和解码器来增强这些特征。此外,还引入了一致性感知模块(CPB)以保护变化区域的空间结构。实验结果显示,在LEVIR-CD、WHU-CD和CLCD数据集上,该模型相比于当前最优的方法表现出更好的性能。 适合人群:对深度学习、遥感图像处理、尤其是变化检测感兴趣的研究人员和技术专家,特别是熟悉变换器网络架构的从业者。 使用场景及目标:此方法适用于需要从多时相对比遥感影像中识别变化情况的任务,如环境监测、灾害评估、城市规划等领域内的应用开发,能够帮助研究者和决策者更准确地了解地面物体随时间的变化趋势。 其他说明:源代码可在GitHub仓库中获取,这为未来的研究提供了一个重要的参考平台,有助于推动该领域的进一步发展。
该项目是个人实践项目,答辩评审分达到90分,代码都经过调试测试,确保可以运行!,可用于小白学习、进阶。 该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。 项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 欢迎下载,欢迎沟通,互相学习,共同进步!提供答疑!
fajslghjlghg
2008-2020年各省每十万人口高等学校平均在校生数数据 1、时间:2008-2020年 2、来源:国家统计j、统计nj 3、指标:行政区划代码、地区名称、年份、每十万人口高等学校平均在校生数 4、范围:31省
毕业设计&课程设计 基于STM32单片机基于RFID的电动车停车管理系统(软件源码+硬件资料+部署教程+功能说明+演示视频),高分项目,开箱即用 用户 分为老师 及 学生 管理员 管理员 登录 用户管理 电动车管理 车卡rfid 电动车进出记录 挂失申请列表 解冻申请列表 补办列表申请 用户(只能管理自己的车) 注册(注册的时候选身份,选择学生或者老师) 登录 个人信息查看 电动车管理 进出校记录 挂失申请 解冻申请 补办申请
内容概要:本文探讨了一种新的基于深度强化学习的方法来解决旅行商问题与无人机组合优化(Traveling Salesman Problem with Drone, TSP-D),针对当前无人机辅助卡车配送中面临的协同调度难题进行了改进。研究者提出一种混合模型(HM),整合了注意力编码器和长短期记忆网络(LSTM)解码器的优势,从而有效地记录了多个车辆的动作序列并实现了协调路径规划。该方法在各种测试用例上展现了卓越性能,并能显著提高大型问题实例的计算效率,同时在实际应用场景如最后一步送货中有潜在的巨大价值。 适合人群:对物流系统优化和无人机应用有兴趣的专业人士,特别是从事最后一公里交付方案设计和技术实施的研究人员及工程师。 使用场景及目标:本研究所提出的深度学习框架主要适用于城市环境中复杂条件下的车辆和无人驾驶飞行系统的共同优化配置,目的是为了找到最优的货物递送方案,在最短的时间内完成所有的客户服务任务并返回起点。 其他说明:实验结果显示该算法在随机位置数据集和现实情况中的优越性超过了现有传统算法,表明它不仅能在简单理想情况下发挥良好效果,同样可以在更为复杂的条件下表现出稳定的性能。
北京中启航向科技发展有限公司开发的城市生活垃圾处理费智慧征管系统,是一个全方位、一体化的解决方案,旨在协助城市管理部门高效、准确地收取生活垃圾处理费。该系统利用先进的人工智能和数据分析技术,实现垃圾分类、计量和收费的智能化管理,提升城市环境卫生质量,同时优化行政资源,提高征收效率。
水测试试纸行业剖析:欧洲是全球最大的市场,占40%的份额.pdf
《电力电子技术(第5版)》王兆安_第2章_电力电子器件
基于STM32的直流电机加减速正反转控制串口输出控制系统(P 1100009-基于STM32的直流电机加减速正反转控制串口输出控制系统(PCB 原理图 报告 源代码 proteus lcd1602) 功能描述:基于STM32平台 1、实现了电机控制正转、反转的功能 2、实现了电机控制加速、减速的功能 3、实现了串口输出控制信息的功能 4、串口可以模拟WIFI 蓝牙 RS232 等带有串口的功能。 资料包含: 1、源代码工程文件 2、仿真工程文件 3、lunwen报告1W字以上 4、原理图工程文件 5、PCB工程文件 ,核心关键词:STM32、直流电机、加减速、正反转控制、串口输出、控制信息、WIFI、蓝牙、RS232、源代码工程文件、仿真工程文件、原理图工程文件、PCB工程文件。,基于STM32的电机串口控制综合系统(含正反转、加减速及多种串口通信功能)
ZYNQ7010采集AD7768
apollo 泊车轨迹优化代码 hybridastar+iaps平滑优化+obca平滑优化 第一个图是matlab绘制 后面的图是程序用sdl库绘制 ,apollo;泊车轨迹优化;hybridastar;iaps平滑优化;obca平滑优化;Matlab绘制;SDL库绘制,基于Apollo的泊车轨迹优化:HybridA*算法+平滑优化技术的实现与展示
乳酸链球菌素检验表格(食品添加剂食用香精质量验收记录表).docx