当前位置: 首页 > wzjs >正文

厦门图书馆网站建设上海品质网站建设

厦门图书馆网站建设,上海品质网站建设,上海建网站开发公司,毕业设计模板队列优化算法 请找出从城市 1 到城市 n 的所有可能路径中,综合政府补贴后的最低运输成本。 如果能够从城市 1 到连通到城市 n, 请输出一个整数,表示运输成本。如果该整数是负数,则表示实现了盈利。如果从城市 1 没有路径可达城市…

队列优化算法

请找出从城市 1 到城市 n 的所有可能路径中,综合政府补贴后的最低运输成本。
如果能够从城市 1 到连通到城市 n, 请输出一个整数,表示运输成本。如果该整数是负数,则表示实现了盈利。如果从城市 1 没有路径可达城市 n,请输出 “unconnected”。


import java.util.*;public class Test {static class Edge{int from;int to;int val;public Edge(int from,int to,int val){this.from=from;this.to=to;this.val=val;}}public static void main(String[] args) {Scanner in=new Scanner(System.in);int n=in.nextInt();int m=in.nextInt();List<List<Edge>> graph=new ArrayList<>();for(int i=0;i<n;i++){graph.add(new ArrayList<>());}for(int i=0;i<m;i++){int from=in.nextInt();int to=in.nextInt();int val=in.nextInt();graph.get(from).add(new Edge(from, to, val));}int[]minDist=new int[n+1];Arrays.fill(minDist,Integer.MAX_VALUE);minDist[1]=0;Queue<Integer> queue=new LinkedList<>();queue.offer(1);boolean[] isInQueue=new boolean[n+1];while(!queue.isEmpty()){int curNode=queue.poll();isInQueue[curNode]=false;for(Edge edge:graph.get(curNode)){if(minDist[edge.to]>minDist[edge.from]+edge.val){minDist[edge.to]=minDist[edge.from]+edge.val;if(!isInQueue[edge.to]){queue.offer(edge.to);isInQueue[edge.to]=true;}}}}if(minDist[n]==Integer.MAX_VALUE){System.out.println("unconnected");}else{System.out.println(minDist[n]);}}}

判断负权回路

负权回路是指一系列道路的总权值为负,这样的回路使得通过反复经过回路中的道路,理论上可以无限地减少总成本或无限地增加总收益。
请找出从城市 1 到城市 n 的所有可能路径中,综合政府补贴后的最低运输成本。同时能够检测并适当处理负权回路的存在。


import java.util.*;public class Test {static class Edge{int from;int to;int val;public Edge(int from,int to,int val){this.from=from;this.to=to;this.val=val;}}public static void main(String[] args) {Scanner in=new Scanner(System.in);int n=in.nextInt();int m=in.nextInt();List<List<Edge>> graph=new ArrayList<>();for(int i=0;i<n;i++){graph.add(new ArrayList<>());}for(int i=0;i<m;i++){int from=in.nextInt();int to=in.nextInt();int val=in.nextInt();graph.get(from).add(new Edge(from, to, val));}int[]minDist=new int[n+1];Arrays.fill(minDist,Integer.MAX_VALUE);minDist[1]=0;Queue<Integer> queue=new LinkedList<>();queue.offer(1);boolean[] isInQueue=new boolean[n+1];int[] count=new int[n+1];count[1]++;boolean flag=false;while(!queue.isEmpty()){int curNode=queue.poll();isInQueue[curNode]=false;for(Edge edge:graph.get(curNode)){if(minDist[edge.to]>minDist[edge.from]+edge.val){minDist[edge.to]=minDist[edge.from]+edge.val;if(!isInQueue[edge.to]){queue.offer(edge.to);count[edge.to]++;isInQueue[edge.to]=true;}if(count[edge.to]==n){flag=true;while (!queue.isEmpty()) {queue.poll();}break;}}}}if(flag){System.out.println("circle");}else if(minDist[n]==Integer.MAX_VALUE){System.out.println("unconnected");}else{System.out.println(minDist[n]);}}}

加了一个count数组,若松弛 n 次以上,则存在负权回路

单源有限最短路

某国为促进城市间经济交流,决定对货物运输提供补贴。共有 n 个编号为 1 到 n 的城市,通过道路网络连接,网络中的道路仅允许从某个城市单向通行到另一个城市,不能反向通行。

网络中的道路都有各自的运输成本和政府补贴,道路的权值计算方式为:运输成本 - 政府补贴。

权值为正表示扣除了政府补贴后运输货物仍需支付的费用;

权值为负则表示政府的补贴超过了支出的运输成本,实际表现为运输过程中还能赚取一定的收益。

请计算在最多经过 k 个城市的条件下,从城市 src 到城市 dst 的最低运输成本

import java.util.*;public class Main {// 基于Bellman_for一般解法解决单源最短路径问题// Define an inner class Edgestatic class Edge {int from;int to;int val;public Edge(int from, int to, int val) {this.from = from;this.to = to;this.val = val;}}public static void main(String[] args) {// Input processingScanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();List<Edge> graph = new ArrayList<>();for (int i = 0; i < m; i++) {int from = sc.nextInt();int to = sc.nextInt();int val = sc.nextInt();graph.add(new Edge(from, to, val));}int src = sc.nextInt();int dst = sc.nextInt();int k = sc.nextInt();int[] minDist = new int[n + 1];int[] minDistCopy;Arrays.fill(minDist, Integer.MAX_VALUE);minDist[src] = 0;for (int i = 0; i < k + 1; i++) { // Relax all edges k + 1 timesminDistCopy = Arrays.copyOf(minDist, n + 1);for (Edge edge : graph) {int from = edge.from;int to = edge.to;int val = edge.val;// Use minDistCopy to calculate minDistif (minDistCopy[from] != Integer.MAX_VALUE && minDist[to] > minDistCopy[from] + val) {minDist[to] = minDistCopy[from] + val;}}}// Output printingif (minDist[dst] == Integer.MAX_VALUE) {System.out.println("unreachable");} else {System.out.println(minDist[dst]);}}
}

文章转载自:

http://maNhMeXU.dhmLL.cn
http://TNdE0nuh.dhmLL.cn
http://clQ2PtR4.dhmLL.cn
http://qP3nyBY8.dhmLL.cn
http://Oa7IaXLj.dhmLL.cn
http://9KNje8Qb.dhmLL.cn
http://g0jCmEQS.dhmLL.cn
http://mBCbP66P.dhmLL.cn
http://QtSfYAV4.dhmLL.cn
http://pd7rNzpk.dhmLL.cn
http://dA9mRGUl.dhmLL.cn
http://bSdroIca.dhmLL.cn
http://wErQBcVi.dhmLL.cn
http://Uup0oawV.dhmLL.cn
http://VtiWErH8.dhmLL.cn
http://jduXj4JW.dhmLL.cn
http://3juiwxEm.dhmLL.cn
http://az8BfF2b.dhmLL.cn
http://0pZhli6v.dhmLL.cn
http://HhCFyDXx.dhmLL.cn
http://nv3LEqj1.dhmLL.cn
http://rPkbk8Ux.dhmLL.cn
http://evOOgTub.dhmLL.cn
http://2x3evLYo.dhmLL.cn
http://Ki2jvMoX.dhmLL.cn
http://IJaxdiST.dhmLL.cn
http://4ra2I35p.dhmLL.cn
http://unUq0dCm.dhmLL.cn
http://ixfERcHO.dhmLL.cn
http://rDpw650a.dhmLL.cn
http://www.dtcms.com/wzjs/625920.html

相关文章:

  • 购物商城网站建设公司做的时间长的网站制作公司哪家好
  • 海城网站制作建设最好的搭建网页的平台
  • 网上服装商城网站建设方案策划上海闵行区
  • 达州北京网站建设dz论坛如何seo
  • 网站301了不知道在哪做的企业形象设计公司
  • 网站栏目规划图网络品牌推广方法有哪些
  • 南宁保洁网站建设土建网招聘信息
  • 企业网站开发开题报告网站结合微信
  • 玩具网站 下载wordpress留言机器人
  • 曲靖手机网站建设用wordpress建公司网站步骤
  • 福州做公司网站wordpress ui psd
  • 室内设计图网站有哪些个人网站域名取名
  • 想见你一个网站怎么做深圳网站制作济南
  • 做网站需要哪些手续起飞页 wordpress
  • 谷歌seo推广招聘八方资源网做网站优化怎么样
  • 大连手机网站制作课程建设网站
  • 微信网站作用jsp做手机网站
  • 凡科网免费做网站企业组网解决方案
  • 芜湖网站建设芜湖中国做视频网站有哪些
  • 南京网站备案代码模版 网站
  • 如何备份网站的中标查询
  • 做平面vi网站如何注册企业邮箱?
  • 网站打不开了怎么办什么是网络营销行为分析
  • 优化网站浏览量怎么看wordpress 用户组
  • 深圳外贸网站建设服务商阿里云 拦截网站
  • 网站开发售后工作中国专利查询系统入口
  • 沧州哪里做网站北京城市雕塑建设管理办公室网站
  • 汽车网站建设流程图阿里巴巴运营岗位
  • 成都做网站建设公司河北网页设计
  • 传媒网站给行业做宣传八戒商标注册网