湖北民族建设集团网站首页美工设计需要学什么

张小明 2026/3/2 14:52:32
湖北民族建设集团网站首页,美工设计需要学什么,wordpress体验,建设网站找哪家(新卷,200分)- 快递员的烦恼#xff08;Java JS Python C#xff09;题目描述快递公司每日早晨#xff0c;给每位快递员推送需要送到客户手中的快递以及路线信息#xff0c;快递员自己又查找了一些客户与客户之间的路线距离信息#xff0c;请你依据这些…(新卷,200分)- 快递员的烦恼Java JS Python C题目描述快递公司每日早晨给每位快递员推送需要送到客户手中的快递以及路线信息快递员自己又查找了一些客户与客户之间的路线距离信息请你依据这些信息给快递员设计一条最短路径告诉他最短路径的距离。注意不限制快递包裹送到客户手中的顺序但必须保证都送到客户手中用例保证一定存在投递站到每位客户之间的路线但不保证客户与客户之间有路线客户位置及投递站均允许多次经过所有快递送完后快递员需回到投递站输入描述首行输入两个正整数n、m接下来 n 行输入快递公司发布的客户快递信息格式为客户id 投递站到客户之间的距离distance再接下俩的 m 行是快递员自行查找的客户与客户之间的距离信息格式为客户id1 客户id2 distance在每行数据中数据与数据之间均以单个空格分隔规格0 n ≤ 100 ≤ m ≤ 100 客户id ≤ 10000 distance ≤ 10000输出描述最短路径距离如无法找到请输出-1用例输入2 11 10002 12001 2 300输出2500说明路径1快递员先把快递送到客户1中接下来直接走客户1到客户2之间的直通路线最后走投递站和客户2之间的路回到投递站距离为 1000 300 1200 2500路径2快递员先把快递送到客户1手中接下来回到快递站再出发把客户2的快递送过去再回到快递站距离为 1000 1000 1200 1200 4400路径3快递员先把快递送到客户2手中接下来直接走客户2到客户1之间的直通线路最后走投递站和客户1之间的路回到投递站距离为 1200 300 1000 2500其他路径......所有路径中最短路径距离为 2500输入5 15 10009 120017 300132 700500 23005 9 400输出9200说明在所有可行的路径中最短路径长度为 1000 400 1200 300 300 700 700 2300 2300 9200题目解析下图中 0节点 代表快递站。用例1图示用例2图示JS算法源码const rl require(readline).createInterface({ input: process.stdin }); var iter rl[Symbol.asyncIterator](); const readline async () (await iter.next()).value; void (async function () { const [n, m] (await readline()).split( ).map(Number); // floyd算法需要基于dist和path矩阵求解 // dist[i][j] 用于记录点 i-j 的最短距离初始时等价于邻接矩阵, 对与不直连的两点距离为无穷大 const dist new Array(n 1) .fill(0) .map(() new Array(n 1).fill(Infinity)); // path[i][j] 用于记录点 i-j 最短距离情况下需要经过的中转点初始时默认任意两点间无中转点即默认path[i][j] -1 const path new Array(n 1).fill(0).map(() new Array(n 1).fill(-1)); // 由于本题的客户id不是顺序的因此这里需要将客户id离散化处理 const map {}; for (let i 1; i n; i) { const [id, dis] (await readline()).split( ).map(Number); // 离散化处理 map[id] i; // 投递站到客户之间的距离distance dist[0][i] dis; dist[i][0] dis; } for (let i 1; i m; i) { const [id1, id2, dis] (await readline()).split( ).map(Number); const i1 map[id1]; const i2 map[id2]; // 客户与客户之间的距离信息 dist[i1][i2] dis; dist[i2][i1] dis; } // floyd算法调用 floyd(); // ans记录经过所有点后回到出发点的最短距离 let ans Infinity; // 全排列模拟经过所有点的路径 dfs(0, 0, new Array(n 1).fill(false), 0); console.log(ans); // floyd算法求解图中任意两点之间的最短路径 function floyd() { for (let k 0; k n 1; k) { for (let i 0; i n 1; i) { for (let j 0; j n 1; j) { // newDist是经过k后i-j的距离 const newDist dist[i][k] dist[k][j]; // 如果newDist是i-j的更短路径 if (newDist dist[i][j]) { // 则更新i-j的最短距离 dist[i][j] newDist; // 且此更短距离需要经过k, path[i][j]即记录 i-j 最短距离下需要经过点 k path[i][j] k; } } } } } /** * 找一条经过所有点的最短路径我们可以求解所有点形成的全排列每一个全排列都对应一条经过所有点的路径只是经过点的先后顺序不同 // * 求某个全排列过程中可以通过dist数组累计上一个点i到下一个点j的最短路径dist[i][j] * * param pre 上一个点, 初始为0表示从快递站出发 * param sum 当前全排列路径累计的路径权重 * param used 全排列used数组用于标记哪些点已使用过 * param level 用于记录排列的长度 */ function dfs(pre, sum, used, level) { if (level n) { // 此时pre是最后一个客户所在点送完最后一个客户后快递员需要回到快递站因此最终累计路径权重为 sum dist[pre][0] // 我们保留最小权重路径 ans Math.min(ans, sum dist[pre][0]); return; } for (let i 1; i n; i) { if (used[i]) continue; used[i] true; dfs(i, sum dist[pre][i], used, level 1); used[i] false; } } })();Java算法源码import java.util.HashMap; import java.util.Scanner; public class Main { static int n; static int[][] dist; static int[][] path; static int ans; public static void main(String[] args) { Scanner sc new Scanner(System.in); n sc.nextInt(); int m sc.nextInt(); // floyd算法需要基于dist和path矩阵求解 // dist[i][j] 用于记录点 i-j 的最短距离初始时等价于邻接矩阵 dist new int[n 1][n 1]; // path[i][j] 用于记录点 i-j 最短距离情况下需要经过的中转点初始时默认任意两点间无中转点即默认path[i][j] -1 path new int[n 1][n 1]; for (int i 0; i n 1; i) { for (int j 0; j n 1; j) { // 初始时默认i,j不相连即i,j之间距离无穷大 if (i ! j) { dist[i][j] Integer.MAX_VALUE; } path[i][j] -1; } } // 由于本题的客户id不是顺序的因此这里需要将客户id离散化处理 HashMapInteger, Integer map new HashMap(); for (int i 1; i n; i) { int id sc.nextInt(); int dis sc.nextInt(); // 离散化处理 map.put(id, i); // 投递站到客户之间的距离distance dist[0][i] dis; dist[i][0] dis; } for (int i 1; i m; i) { int id1 sc.nextInt(); int id2 sc.nextInt(); int dis sc.nextInt(); int i1 map.get(id1); int i2 map.get(id2); // 客户与客户之间的距离信息 dist[i1][i2] dis; dist[i2][i1] dis; } // floyd算法调用 floyd(); // ans记录经过所有点后回到出发点的最短距离 ans Integer.MAX_VALUE; // 全排列模拟经过所有点的路径 dfs(0, 0, new boolean[n 1], 0); System.out.println(ans); } // floyd算法求解图中任意两点之间的最短路径 public static void floyd() { for (int k 0; k n 1; k) { for (int i 0; i n 1; i) { for (int j 0; j n 1; j) { // newDist是经过k后i-j的距离 int newDist dist[i][k] dist[k][j]; // 如果newDist是i-j的更短路径 if (newDist dist[i][j]) { // 则更新i-j的最短距离 dist[i][j] newDist; // 且此更短距离需要经过k, path[i][j]即记录 i-j 最短距离下需要经过点 k path[i][j] k; } } } } } /** * 找一条经过所有点的最短路径我们可以求解所有点形成的全排列每一个全排列都对应一条经过所有点的路径只是经过点的先后顺序不同 // * 求某个全排列过程中可以通过dist数组累计上一个点i到下一个点j的最短路径dist[i][j] * * param pre 上一个点, 初始为0表示从快递站出发 * param sum 当前全排列路径累计的路径权重 * param used 全排列used数组用于标记哪些点已使用过 * param level 用于记录排列的长度 */ public static void dfs(int pre, int sum, boolean[] used, int level) { if (level n) { // 此时pre是最后一个客户所在点送完最后一个客户后快递员需要回到快递站因此最终累计路径权重为 sum dist[pre][0] // 我们保留最小权重路径 ans Math.min(ans, sum dist[pre][0]); return; } for (int i 1; i n; i) { if (used[i]) continue; used[i] true; dfs(i, sum dist[pre][i], used, level 1); used[i] false; } } }Python算法源码import sys # 输入获取 n, m map(int, input().split()) # floyd算法需要基于dist和path矩阵求解 # dist[i][j] 用于记录点 i-j 的最短距离初始时等价于邻接矩阵 dist [[sys.maxsize] * (n 1) for _ in range(n 1)] # path[i][j] 用于记录点 i-j 最短距离情况下需要经过的中转点初始时默认任意两点间无中转点即默认path[i][j] -1 path [[-1] * (n 1) for _ in range(n 1)] # 由于本题的客户id不是顺序的因此这里需要将客户id离散化处理 dic {} for i in range(1, n 1): idx, dis map(int, input().split()) # 离散化处理 dic[idx] i # 投递站到客户之间的距离distance dist[0][i] dis dist[i][0] dis for i in range(1, m 1): idx1, idx2, dis map(int, input().split()) i1 dic[idx1] i2 dic[idx2] # 客户与客户之间的距离信息 dist[i1][i2] dis dist[i2][i1] dis # ans记录经过所有点后回到出发点的最短距离 ans sys.maxsize # floyd算法求解图中任意两点之间的最短路径 def floyd(): for k in range(n 1): for i in range(n 1): for j in range(n 1): # newDist是经过k后i-j的距离 newDist dist[i][k] dist[k][j] # 如果newDist是i-j的更短路径 if newDist dist[i][j]: # 则更新i-j的最短距离 dist[i][j] newDist # 且此更短距离需要经过k, path[i][j]即记录 i-j 最短距离下需要经过点 k path[i][j] k def dfs(pre, sumDis, used, level): 找一条经过所有点的最短路径我们可以求解所有点形成的全排列每一个全排列都对应一条经过所有点的路径只是经过点的先后顺序不同 // 求某个全排列过程中可以通过dist数组累计上一个点i到下一个点j的最短路径dist[i][j] :param pre: 上一个点, 初始为0表示从披萨店出发 :param sumDis: 当前全排列路径累计的路径权重 :param used: 全排列used数组用于标记哪些点已使用过 :param level: 用于记录排列的长度 global ans if level n: # 此时pre是最后一个客户所在点送完最后一个客户后司机需要回到披萨店因此最终累计路径权重为 sum dist[pre][0] # 我们保留最小权重路径 ans min(ans, sumDis dist[pre][0]) return for i in range(1, n 1): if used[i]: continue used[i] True dfs(i, sumDis dist[pre][i], used, level 1) used[i] False # 算法入口 def main(): # floyd算法调用 floyd() # 全排列模拟经过所有点的路径 dfs(0, 0, [False] * (n 1), 0) print(ans) # 算法调用 main()C算法源码#include stdio.h #include limits.h #define MIN(a, b) ((a) (b) ? (a) : (b)) #define MAX_SIZE 11 #define MAX_ID 1000 int n; int dist[MAX_SIZE][MAX_SIZE]; int path[MAX_SIZE][MAX_SIZE]; int ans; /** * 找一条经过所有点的最短路径我们可以求解所有点形成的全排列每一个全排列都对应一条经过所有点的路径只是经过点的先后顺序不同 // * 求某个全排列过程中可以通过dist数组累计上一个点i到下一个点j的最短路径dist[i][j] * * param pre 上一个点, 初始为0表示从披萨店出发 * param sum 当前全排列路径累计的路径权重 * param used 全排列used数组用于标记哪些点已使用过 * param level 用于记录排列的长度 */ void dfs(int pre, int sum, int used[], int level) { if (level n) { // 此时pre是最后一个客户所在点送完最后一个客户后司机需要回到披萨店因此最终累计路径权重为 sum dist[pre][0] // 我们保留最小权重路径 ans MIN(ans, sum dist[pre][0]); return; } for (int i 1; i n; i) { if (used[i]) continue; used[i] 1; dfs(i, sum dist[pre][i], used, level 1); used[i] 0; } } // floyd算法求解图中任意两点之间的最短路径 void floyd() { for (int k 0; k n 1; k) { for (int i 0; i n 1; i) { for (int j 0; j n 1; j) { // newDist是经过k后i-j的距离 int newDist dist[i][k] dist[k][j]; // 如果newDist是i-j的更短路径 if (newDist dist[i][j]) { // 则更新i-j的最短距离 dist[i][j] newDist; // 且此更短距离需要经过k, path[i][j]即记录 i-j 最短距离下需要经过点 k path[i][j] k; } } } } } int main() { int m; scanf(%d %d, n, m); for (int i 0; i n 1; i) { for (int j 0; j n 1; j) { // 初始时默认i,j不相连即i,j之间距离无穷大 if (i ! j) { dist[i][j] INT_MAX; } path[i][j] -1; } } // 由于本题的客户id不是顺序的因此这里需要将客户id离散化处理 int map[MAX_ID]; for (int i 1; i n; i) { int id, dis; scanf(%d %d, id, dis); // 离散化处理 map[id] i; // 投递站到客户之间的距离distance dist[0][i] dis; dist[i][0] dis; } for (int i 1; i m; i) { int id1, id2, dis; scanf(%d %d %d, id1, id2, dis); int i1 map[id1]; int i2 map[id2]; // 客户与客户之间的距离信息 dist[i1][i2] dis; dist[i2][i1] dis; } // floyd算法调用 floyd(); // ans记录经过所有点后回到出发点的最短距离 ans INT_MAX; // 全排列模拟经过所有点的路径 int used[MAX_SIZE] {0}; dfs(0, 0, used, 0); printf(%d\n, ans); }
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

郑州大学科技园手机网站建设如何制作聊天软件

随着各个学校要求论文的AIGC检测值在30%以内,哪个降AI率工具好用成为很多师生的关注焦点。据2025年降AI率工具行业统计报告显示,已有超过200个各类去除AIGC痕迹和降低AI重复率的软件。选择合适的降AIGC率工具,关系着文章能够顺利通过AIGC检测…

张小明 2026/1/21 23:43:31 网站建设

网站建设技术及服务承诺跨境电商平台排行榜

UI-TARS-7B:开启图形界面智能交互的终极解决方案 【免费下载链接】UI-TARS-7B-SFT 项目地址: https://ai.gitcode.com/hf_mirrors/ByteDance-Seed/UI-TARS-7B-SFT 在当今数字化时代,图形界面交互已成为我们日常工作和生活中不可或缺的一部分。UI…

张小明 2026/1/21 23:43:00 网站建设

网站目录 自动汤臣杰逊品牌策划公司

脚本调试技巧全解析 在软件开发中,调试往往占据了大量的时间,尤其是在 Tcl 编程中,很多人边思考边编写代码,调试的需求更为突出。下面将详细介绍一些实用的调试技巧。 1. 基本调试方法 输出命令 :使用 puts 和 send 等简单输出命令可以帮助我们发现问题。为了避免…

张小明 2026/1/21 23:42:30 网站建设

网站建设网站制作价格西安有哪些做网站的公司

ARINC 429航空总线简介 ARINC 429总线协议是美国航空电子工程委员会(Airlines Engineering Committee)于1977年7月提出的,并于同年发表并获得批准使用。它的全称是数字式信息传输系统DITS。协议标准规定了航空电子设备及有关系统间的数字信息传输要求和ARINC 429基…

张小明 2026/1/21 23:40:57 网站建设

南宁免费网站建站模板泰安工作招聘

3分钟快速上手:Qwen3-VL多模态AI模型的完整使用指南 【免费下载链接】Qwen3-VL-4B-Instruct-FP8 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/Qwen3-VL-4B-Instruct-FP8 想要体验最新一代的多模态人工智能吗?Qwen3-VL-4B-Instruct-FP8…

张小明 2026/1/21 23:40:26 网站建设

响应式网站设计软件设计网站需要用到哪些技术

2025效率革命:ERNIE 4.5-VL如何用30亿参数重塑多模态AI产业 【免费下载链接】ERNIE-4.5-VL-424B-A47B-Paddle 项目地址: https://ai.gitcode.com/hf_mirrors/baidu/ERNIE-4.5-VL-424B-A47B-Paddle 导语:百度ERNIE 4.5-VL以424B总参数、仅激活30亿…

张小明 2026/1/21 23:39:24 网站建设