算法笔记——最短路问题(边权不含负数)

最短路问题(边权不含负数)例题

###来自计蒜客的一个题目QAQ
题目链接

学名叫做:dijkstra算法

目的:做笔记,方便以后看。。。

从一个叫《程序员小灰》的微信公众号上学到的
算法不难,但是算法的证明比较烧脑子。

#include<iostream>
#include<cstring>
#define INF 0x3f3f3f3f				//小菜鸡刚刚才知道这个叫无穷大
using namespace std;
int main(void)
{
	bool flag[105];
	int n,m,a,b,c,map[105][105],ans[105];
	while (cin>>n>>m)
	{
		int num=0,min=INF,u=-1;
		memset(flag,0,sizeof(flag));
		memset(ans,INF,sizeof(ans));
		ans[1]=0;
		memset(map,-1,sizeof(map));
		if (n==0&&m==0)
			break;
		for (int i=0;i<m;i++)
		{
			cin>>a>>b>>c;
			map[a][b]=c;
			map[b][a]=c;
		}									//构建邻接矩阵;
		while (1)							
		{
			u=-1;
			for (int i=1;i<=n;i++)
			{
				if (!flag[i])					
				{
					if (min>ans[i])
					{
						u=i;
						min=ans[i];
					}
				}
			}							//从距离表中找到最小元素; 
			flag[u]=1;
			if (u==-1)
				break;
			for (int i=1;i<=n;i++)
			{
				if (map[u][i]!=-1)
					if (map[u][i]+ans[u]<ans[i])
						ans[i]=map[u][i]+ans[u];
			}
			min=INF;
		}
		cout<<ans[n]<<endl;
	}
	return 0;
}

### 使用 Xfdp 连接虚拟机 Xfdp 是一款基于 FTP 的文件传输工具,类似于 Xftp 或 FinalShell 中的功能模块。以下是关于如何使用 Xfdp 工具连接 Linux 虚拟机的相关说明。 #### 1. 准备工作 在使用 Xfdp 前,需确认以下条件已满足: - **虚拟机 IP 地址**:通过 `ifconfig` 或 `ip addr` 查看虚拟机中的网卡配置并记录其分配的 IP 地址[^2]。 - **FTP/SSH 服务开启**:如果目标是通过 SSH 协议进行安全连接,则需要确保虚拟机中已经安装并启动了 OpenSSH Server[^4]。可以通过运行以下命令完成安装和状态检查: ```bash sudo apt-get update && sudo apt-get install openssh-server systemctl status sshd ``` #### 2. 配置 Xfdp 客户端 打开 Xfdp 应用程序后,按照如下参数设置连接信息: - **主机名/IP 地址**:填写之前获取到的虚拟机 IP 地址。 - **用户名**:通常为虚拟机系统的默认用户(如 root 或其他自定义账户)。 - **密码**:对应用户的登录密码。 - **端口号**:一般情况下,默认值为 22(用于 SSH),除非有特殊修改。 #### 3. 测试连接 点击“连接”按钮尝试建立会话。成功之后即可浏览远程目录结构,并执行诸如下载、上传等操作。 需要注意的是,在某些特定场景下可能会遇到无法正常访问的情况,比如防火墙阻止外部请求或者未授权的密钥认证机制干扰等问题。此时可以参照类似文档解决方法调整环境设定。 另外值得注意的一点是,虽然这里讨论的重点在于利用 Xfdp 实现数据交换目的,但如果仅是为了单纯管理型任务考虑的话,也可以选用像 PuTTY 这样的专用 SSH 客户端作为替代方案[^5]。 ```python # 示例 Python 脚本验证 SSH 可达性 (可选) import paramiko def test_ssh_connection(ip, username, password): client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) try: client.connect(ip, port=22, username=username, password=password) stdin, stdout, stderr = client.exec_command('whoami') output = stdout.read().decode('utf-8').strip() if output == username: print(f'Successfully connected to {username}@{ip}') else: print('Connection failed.') except Exception as e: print(e) test_ssh_connection('your_vm_ip', 'your_username', 'your_password') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值