[POJ]3164 Command Network 朱刘算法

LAMMPS实操系列(一): 大量FCC-CoCrCuFeNi高熵合金建模与最稳定结构筛选 高熵合金(High-entropy alloys,HEA),是由五种或五种以上等量或大约等量金属形成的合金。由于高熵合金可能具有许多优秀的物理化学性质,因此在材料科学领域受到广泛关注 阅读详情
Command Network
Time Limit: 1000MS Memory Limit: 131072K
Total Submissions: 18372 Accepted: 5262

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<stdio.h>
#include<cstring>
#include<cmath>
#define maxn 105
#define inf 2000000000
#define clear(a) memset(a,-1,sizeof(a))
using namespace std;
int n,m,root=1,which,cnt;
int pre[maxn],vis[maxn],id[maxn];
double in[maxn];
struct point{
    double x,y;
}coordinate[maxn];
double calculate(point a,point b){
    return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));    
}
struct edge{
    int u,v;
    double w;
}e[maxn*maxn];
inline void init(){
    clear(vis),clear(id),cnt=1;
}
inline double Zhu_Liu_Algortithm(int root,int n,int m){
    double ans=0;
	while(true){
	    for(int i=1;i<=n;i++) in[i]=inf;
	    in[root]=0;
	    for(int i=1;i<=m;i++){//统计入边 
	        int u=e[i].u,v=e[i].v;//从u到v 
	        if(e[i].w<in[v]&&u!=v)//缩点后有可能u==v 
               in[v]=e[i].w,pre[v]=u; 	
		} 
		for(int i=1;i<=n;i++) {
		    if(i==root) continue;
			if(in[i]==inf) return -1;
	    }
	    init();
	    //找环 
		for(int i=1;i<=n;i++){
	        ans+=in[i];//我所选择的边的权值
			which=i;
			while(vis[which]!=i&&id[which]==-1&&which!=root){
			    vis[which]=i;
			    which=pre[which];
			}
			if(which!=root&&id[which]==-1){
			   for(int u=pre[which];u!=which;u=pre[u]) id[u]=cnt;
			   id[which]=cnt++;
			}
		}
		if(cnt==1) break; //无环的时候就可以退出了,此时就是最小树形图
		//建立新图
		for(int i=1;i<=n;i++)
		 if(id[i]==-1) id[i]=cnt++;//每个不在环上的点都是独立的新点
		for(int i=1;i<=m;i++){
		    int u=e[i].u,v=e[i].v;
		    e[i].u=id[u],e[i].v=id[v];
		    if(id[u]!=id[v]) //删除不再走的边
			   e[i].w-=in[v]; 
		} 
		n=cnt-1;
		root=id[root]; 
	}
	return ans; 
}
int main(){
    while(scanf("%d%d",&n,&m)!=EOF){
        for(int i=1;i<=n;i++) scanf("%lf%lf",&coordinate[i].x,&coordinate[i].y);
		for(int i=1;i<=m;i++){
		    scanf("%d%d",&e[i].u,&e[i].v);
	        if(e[i].u!=e[i].v) e[i].w=calculate(coordinate[e[i].u],coordinate[e[i].v]);
			else e[i].w=inf;  
		}
		double The_Final_Problem=Zhu_Liu_Algortithm(1,n,m);
		if(The_Final_Problem==-1) printf("poor snoopy\n");
		else printf("%.2f\n",The_Final_Problem);
	}   
}


 
                                              
手把手教你构建轻量级CLIP模型:从理论到实践 本文手把手教你从零构建一个轻量级CLIP模型,深入解析其核心原理——对比学习,并提供完整的代码实践。通过精简的模型架构、数据准备和训练循环实现,帮助读者彻底理解多模态模型如何让图像与文本在共享空间中对齐,为学习更复杂的AI模型打下坚实基础。 阅读详情

相关推荐

从IMU到机器人定位:手把手教你用ESKF(Error-State Kalman Filter)搞定传感器融合

本文详细介绍了如何使用ESKF(Error-State Kalman Filter)实现IMU与多传感器的融合,解决机器人定位中的积分漂移问题。通过代码示例和Gazebo仿真案例,展示了ESKF在自动驾驶和移动机器人中的核心应用,包括误差状态建模、预测过程实现和观测更新策略,帮助开发者掌握这一高效滤波技术。

weixin_33275503的博客 278

【POJ 3164】【朱刘算法模板】Command Network

求解最小树形图:朱刘算法模板题~

Regina8023 1627

学生党投稿Applied Soft Computing:从导师账号登录到通讯作者设置的全流程解惑

本文详细解析了学生投稿Applied Soft Computing期刊的全流程,重点介绍了导师账号登录、通讯作者设置、作者排序调整以及开放获取费用等关键环节的避坑技巧。针对LaTeX稿件处理和财务选项选择提供了实用建议,帮助学生顺利完成SCI期刊投稿。

weixin_30352191的博客 210

POJ 3164 Command Network(朱刘算法)

Command Network Time Limit:1000MS Memory Limit:131072K Total Submissions:21481 Accepted:6117 Description After a long lasting war on words, a war on arms finally breaks out b...

YIU 286

达梦数据守护集群监视器详解与应用指南

主库/备库:承担读写和只读服务的数据节点Redo 日志:记录数据库变更的核心日志Redo 日志传输:主备库间的日志同步机制Redo 日志重演:备库重做日志的应用过程守护进程 (dmwatcher):实例级别的监控和管理组件监视器 (dmmonitor):集群级别的监控和管理工具监视器作为数据守护系统的重要组成部分,提供了集群监控、故障管理和状态确认等关键功能。达梦数据守护集群监视器是维护数据库高可用性的关键工具。

huanhuanzhou blog 1058

易灵思Ti60F100 FPGA的HyperRAM实战:从硬件连接到Native接口时序调试

本文详细介绍了易灵思Ti60F100 FPGA内置HyperRAM控制器的实战应用。文章从硬件设计要点(如400MHz+信号完整性、等长匹配)切入,重点解析了如何通过Interface Designer配置高效的Native接口,并分享了其时序详解与调试技巧,为开发者提供了一份从硬件连接到软件调试的深度指南。

weixin_29168153的博客 453

POJ - 3164 Command Network(朱刘算法)

题目大意:有N个点,M条有向边。如今要求你以1为根。构造出一棵最小生成树,问这棵最小生成树是否能被构造出来,假设能够。总权值是多少 解题思路:朱刘算法的裸题。我仅仅想吐槽一下POJ,用的是double型的,输出时是%.2lf,结果是WA 换成了%.2f就A了。。这什么情况,白白花费了1个多小时去调错。。 #include <cstdio> #in...

aodiyi6351的博客 140

基于phpstudy搭建pikachu靶场

一、phpstudy下载安装配置 phpstudy介绍 简单介绍一下phpstudy,详细请参考百度解读。pikachu是基于PHP环境搭建的,需要数据库支持,所以装pikachu之前需要先安装它需要的环境,就像你养鱼需要给它提供水环境一样。安装phpstudy能满足pikachu的需求,所以先安装phpstudy。 phpStudy是一个PHP调试环境的程序集成包。该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是

ptxybird的博客 1万+

[POJ 3164] Command Network 有向图的最小树形图(朱刘算法)

Command Network

SIOFive的专栏 1845

[ROS] rviz 可视化工具

[ROS] rviz 可视化工具 摄像头没讲 文章目录[ROS] rviz 可视化工具1. todo2. todo*. 参考*. 问题解决*. rough 1. todo 2. todo *. 参考 *. 问题解决 *. rough roscore + rviz

weixin_37834269的博客 2049

【电容/电感】电路板会“滋滋”的响,我们称它为啸叫

一、啸叫的起源 大部分硬件工程师应该都遇到过,PCBA上电后出现“滋滋滋”的叫声,其声响或大或小,或时有时无,或深沉或刺耳,或变化无常者皆有。该现象我们称为“啸叫”,一般分为电感啸叫和电容啸叫。

云轩阁 6万+

POJ-3164 Command Network (朱刘算法)

这是一道最小树形图的模板题 朱刘算法开始时的确不是太好理解,在网上看了好多文章才差不多理解。 在这里说一点,缩点时,如果弧(u,v)的v点在一个环中,这个环形成的缩点在新图中的编号是k,那么新图中(u,k)的权值是W(u,v)-in[v],因为ret(即最终的返回值)只在朱刘算法的开始置了一次0,这个权值的变化可以保证,在对一个点加入新的入边时,可以顺便把上一次的旧边的权值在ret中去掉,对于...

Accsc的博客 429

Claude Code 官方文档+3 个高活跃社区+5 个可复用开源项目:14.4 节持续学习资源实测清单

揭示 Claude Code 的核心交互范式是「状态机驱动的对话式编程」,强调官方文档实为配置契约、社区是直觉验证场、开源项目是配置能力校准器;通过真实故障案例解析上下文丢失根源,提出以工程化方式管理 claude.config.json、CLAUDE.md 和技能配置。

weixin_28728443的博客 326

朱刘算法 && POJ3164 Command Network

问题描述:求最小树形图的总权值。即以固定根为起点,沿给定有向边,可以访问到所有的点,并使所构成的边权值之和最小,求这个最小总权值。 算法步骤: ① 清除自环,输入的时候判断即可 ② 先判断从固定根开始是否可达所有原图中的点。简单搜索加标记位就可以。如果不可就不用说了,肯定没戏。 ③ 为除根之外的每个点选定一条最小入边。 (记pre [vi]为该边的起点) ④ 判断这个...

weixin_30907935的博客 180

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

poj 3164 Command Network (朱刘算法)

题目链接:   http://poj.org/problem?id=3164 题目大意:   有n个点(用坐标表示)各点编号分别为1—>n,m条单向路,问能否存在一个花费价值最小的网络,能使从1点到达任一个点。 解题思路:   很明显的朱刘模板题,但是刚看到这个题目的时候,弱还不懂这个东西%>_<% 最小树形图就是给有向带权图中指定一个特殊的点root,求一棵以roo...

weixin_30648587的博客 112

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

POJ-3164 Command Network 最小树形图 朱刘算法

朱刘算法 参考之 http://blog.youkuaiyun.com/wsniyufang/article/details/6747392 #include #include #include #include using namespace std; const int maxn = 115; #define type double const type inf = 1<<30; int n

菜鸟成长ing 597

[POJ 3164]Command Network(最小树形图,朱刘算法)

新学的小知识

373

Command Network POJ - 3164(最小树形图/朱刘算法)

Command Network POJ - 3164 题意: 1到所有点的最短距离,有向,最短,最小树形图(朱刘算法),板子题。 不会的点链接。 学吧! 挺简单的。 注意: 别交G++,用C++交 原因如下:   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 K

Foolishman的博客 254

POJ3164 Command Network【最小树形图】【朱刘算法】

题目大意:长时间战争过后,一场战争终于切断了Littleken和KnuthOcean王国的联系。 Littleken的指挥网络瘫痪了,现在最重要的事是建立一个临时的通信网络,这个任务交 给了Snoopy。 Snoopy觉得最重要的一点是要把命令传到被摧毁的网络中的每一个点上,所以他决定先 建立一个单向的传输网络。假设所有的传输节点都分布在一个平面上。如果Littleken的 命令想要从节点A传送到节点B上,必须建立一个单向电缆从节点A连接到节点B。为了 尽可能节省资源,要求通信网络所用的电缆长度最小(参考A

程序员充电站(itcharge) 2066

POJ - 3164 Command Network(朱刘算法 最小树形图)

就是给有向带权图中指定一个特殊的点root,求一棵以root为根的有向生成树T,并且T中所有边的总权值最小。解决这种问题要用到朱刘算法。朱刘算法有以下五步: 1、找到除了root以为其他点的权值最小的入边。用In[i]记录 2、如果出现除了root以为存在其他孤立的点,则不存在最小树形图。 3、找到图中所有的环,并对环进行缩点,重新编号。 4、更新其他点到环上的点的距离,如:(in【j】表示...

qq_38367681的博客 331

POJ3164 Command Network (最小树形图, 朱刘算法)

题目大意 给定一个有nnn个点的坐标和mmm条边的有向图(从111~nnn编号, n<=100n <= 100n<=100), 边权为点之间的欧式距离, 选择一些边,让111号点能到达其它任何一个点,求这些边的最小权值之和。 思路 若该图是一个无向图,那么这题就是求一颗最小生成树, 跑一边PrimPrimPrim 算法即可。但是这题是一张无向图,那么PrimPrimPrim算法就不可行了。这题其实就是求定根的最小树形图, 算法有两种, 一种是朱刘算法,时间复杂度O(nm)O(nm)O(nm

qq_45834992的博客 361

POJ--3164--Command Network【朱刘算法】最小树形图

链接:http://poj.org/problem?id=3164 题意:告诉n个点坐标,m条边表示两个点之间有路,从1点开始建立一个有向图最小生成树。 朱刘算法模板题 ========================== 分割线之下摘自Sasuke_SCUT的blog================================================== 最 小树形图,就是给

阳光照耀圣西罗 1189

Command Network - POJ 3164 朱刘算法

Command Network Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 14424   Accepted: 4151 Description After a long lasting war on words, a war on arms fina

提比的强行AC 469

POJ 3164 Command Network (最小树形图-朱刘算法)

题目地址:POJ 3164 最小树形图第一发。 把一个v写成u了。。。。。TLE了一晚上。。。(虽说今晚出去玩了。。) 刚开始看这个算法的时看模板以为又是一个isap。。。。吓得一个哆嗦。但是仔细看了看之后发现还是挺好理解的。写下自己的理解。 朱刘算法其实只有3步,然后不断循环。 1:找到每个点的最小入边。既然

scf0920 1708

POj 3164 Command Network最小树形图 模板题 朱刘算法

Command Network 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

xiongshuxian2019的博客 230

POJ 3164 Command Network 最小树形图-朱刘算法裸题

题目来源:POJ 3164 Command Network 题意:求以1为根的最小树形图 没有输出字符串 思路:直接高朱刘算法 不懂的可以百度 学会了就是直接套模板的事情 其实就是不断消圈而已 不构成圈就有解 无法从根到达其他点就无解   #include #include #include const int maxn = 110; const int maxm = 500

嗯。 1163
上一篇: Codeforces 808F Card Game
下一篇: [UVA]11478 二分答案+差分约束
MaxMercer
博客等级 码龄10年 55粉丝 261原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值