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

中企网站建设标题关键词优化报价

中企网站建设,标题关键词优化报价,网站开发培训设计,网站5g空间多少钱今日收获:拓扑排序,dijkstra算法 算法讲解部分均来源于代码随想录 1. 拓扑排序 基础知识: (1)应用场景:给出有向图,将有向图转换为线性的排序就叫拓扑排序(如果图中有环则存在循…

今日收获:拓扑排序,dijkstra算法

算法讲解部分均来源于代码随想录

1. 拓扑排序

基础知识:

(1)应用场景:给出有向图,将有向图转换为线性的排序就叫拓扑排序(如果图中有环则存在循环依赖,不能做线性排序,所以拓扑排序也可以用来判断有向图中是否有环)

(2)解法:卡恩算法(BFS广度优先搜索)

(3)步骤:

  • 找到入度为0的点加入结果集
  • 将该节点从图中移除

(4)图中有环:此时找不到入度为0的点,所以结果集的长度小于节点个数

题目链接:117. 软件构建 (kamacoder.com)

方法:

import java.util.*;public class Main{public static void main(String[] args){Scanner sc=new Scanner(System.in);int N=sc.nextInt();int M=sc.nextInt();// 记录节点的入度int[] inDegree=new int[N];// 记录依赖关系List<List<Integer>> edges=new ArrayList<>(N);for (int i=0;i<N;i++){edges.add(new ArrayList<>());}// 接收依赖关系for (int i=0;i<M;i++){int s=sc.nextInt();int t=sc.nextInt();edges.get(s).add(t);  // 依赖于s的边inDegree[t]++;}// 队列存储入度为0的节点Queue<Integer> queue=new LinkedList<>();for (int i=0;i<N;i++){if (inDegree[i]==0){queue.offer(i);}}// 存储结果List<Integer> result=new ArrayList<>();while (!queue.isEmpty()){int cur=queue.poll();result.add(cur);// 将相连节点的入度减一for (int edge:edges.get(cur)){inDegree[edge]--;if (inDegree[edge]==0){queue.offer(edge);}}}// 判断是否存在环if (result.size()==N){for (int i=0;i<result.size()-1;i++){System.out.print(result.get(i)+" ");}System.out.print(result.get(N-1));}else {System.out.println(-1);}}
}

2. dijkstra算法

基础知识:

(1)求最短路径问题:给出有向图,求起点到终点的最短路径。

(2)dijkstra算法:有向图中边的权值均为非负数;可以求起点到其他节点的最短路径算法

(3)dijkstra三部曲:minDist数组用来记录每一个节点距离源点的最小距离。

  • 第一步,选源点到哪个节点近且该节点未被访问过
  • 第二步,该最近节点被标记访问过
  • 第三步,更新非访问节点到源点的距离(即更新minDist数组)

(4)如果需要打印边,和prim算法一样,在更新minDist数组时记录父节点

(5)和prim算法的区别:

  • prim是求非访问节点到最小生成树的最小距离
  • dijkstra是求非访问节点到源点的最小距离,源点是固定的

(6)要求非负权值是因为,此算法后续节点距离源节点的距离=前面节点到源节点的距离+本边的权值,后面的节点一定要比前面已加入路径中的节点成本大

题目链接:47. 参加科学大会(第六期模拟笔试) (kamacoder.com)

方法:

import java.util.*;public class Main{public static void main(String[] args){Scanner sc=new Scanner(System.in);int N=sc.nextInt();int M=sc.nextInt();boolean[] visited=new boolean[N+1]; // 记录是否访问int[][] grid=new int[N+1][N+1];  // 记录所有的边,初始化为不可达for(int i=0;i<N+1;i++){Arrays.fill(grid[i],Integer.MAX_VALUE);}for (int i=0;i<M;i++){int s=sc.nextInt();int e=sc.nextInt();int v=sc.nextInt();grid[s][e]=v;}int[] minDist=new int[N+1];  // 其他点到源点的最小距离for (int i=0;i<N+1;i++){minDist[i]=Integer.MAX_VALUE;}minDist[1]=0;// 求到原点的最小距离for (int i=1;i<N+1;i++){int cur=-1;int minD=Integer.MAX_VALUE;// 选择最小节点for (int j=1;j<N+1;j++){if (minDist[j]<minD&&!visited[j]){cur=j;minD=minDist[j];}}if (cur==-1){break;}// 标记访问visited[cur]=true;// 更新其他节点for (int j=1;j<N+1;j++){if (minDist[cur]+grid[cur][j]<minDist[j]&&!visited[j]&&grid[cur][j]!=Integer.MAX_VALUE){minDist[j]=minDist[cur]+grid[cur][j];}}}if (minDist[N]==Integer.MAX_VALUE){System.out.println(-1);}else {System.out.println(minDist[N]);}}
}

文章转载自:
http://legantine.bbmx.cn
http://furfural.bbmx.cn
http://elberta.bbmx.cn
http://fattiness.bbmx.cn
http://tricot.bbmx.cn
http://polypharmaceutical.bbmx.cn
http://gitano.bbmx.cn
http://flyman.bbmx.cn
http://affusion.bbmx.cn
http://commeasure.bbmx.cn
http://electrodynamic.bbmx.cn
http://brunet.bbmx.cn
http://recapitulative.bbmx.cn
http://lineament.bbmx.cn
http://circlorama.bbmx.cn
http://antibishop.bbmx.cn
http://synthesis.bbmx.cn
http://dissilient.bbmx.cn
http://localizer.bbmx.cn
http://stonewall.bbmx.cn
http://dunmow.bbmx.cn
http://ecclesiae.bbmx.cn
http://gallonage.bbmx.cn
http://intendment.bbmx.cn
http://nicer.bbmx.cn
http://television.bbmx.cn
http://alarming.bbmx.cn
http://enthymeme.bbmx.cn
http://carver.bbmx.cn
http://fibrolane.bbmx.cn
http://felty.bbmx.cn
http://mizenyard.bbmx.cn
http://gothicist.bbmx.cn
http://polychroite.bbmx.cn
http://sufism.bbmx.cn
http://tremor.bbmx.cn
http://tetrose.bbmx.cn
http://retard.bbmx.cn
http://lumisome.bbmx.cn
http://hidalgo.bbmx.cn
http://abstractive.bbmx.cn
http://imparl.bbmx.cn
http://osteochondritis.bbmx.cn
http://trefoil.bbmx.cn
http://outbreed.bbmx.cn
http://ionophore.bbmx.cn
http://literality.bbmx.cn
http://retrorse.bbmx.cn
http://yvr.bbmx.cn
http://basely.bbmx.cn
http://mantel.bbmx.cn
http://incendivity.bbmx.cn
http://teapoy.bbmx.cn
http://nostology.bbmx.cn
http://ladle.bbmx.cn
http://confiscate.bbmx.cn
http://confusion.bbmx.cn
http://slash.bbmx.cn
http://submerge.bbmx.cn
http://schnozzle.bbmx.cn
http://stereochemistry.bbmx.cn
http://sonderkommando.bbmx.cn
http://ectrodactyly.bbmx.cn
http://phantasize.bbmx.cn
http://gam.bbmx.cn
http://rainbarrel.bbmx.cn
http://municipio.bbmx.cn
http://welfarite.bbmx.cn
http://sauce.bbmx.cn
http://laminaria.bbmx.cn
http://unsuppressed.bbmx.cn
http://caprifoliaceous.bbmx.cn
http://geobiological.bbmx.cn
http://reseau.bbmx.cn
http://curvature.bbmx.cn
http://camleteen.bbmx.cn
http://beesting.bbmx.cn
http://roofscape.bbmx.cn
http://complimentary.bbmx.cn
http://nailer.bbmx.cn
http://apartotel.bbmx.cn
http://misfeasor.bbmx.cn
http://stroboscope.bbmx.cn
http://tintinnabular.bbmx.cn
http://spotlight.bbmx.cn
http://finale.bbmx.cn
http://premortuary.bbmx.cn
http://teague.bbmx.cn
http://udderless.bbmx.cn
http://unwittingly.bbmx.cn
http://desiccate.bbmx.cn
http://peaceless.bbmx.cn
http://paragraph.bbmx.cn
http://morat.bbmx.cn
http://anticly.bbmx.cn
http://snifter.bbmx.cn
http://yestern.bbmx.cn
http://tallyho.bbmx.cn
http://hypoxemia.bbmx.cn
http://crossjack.bbmx.cn
http://www.15wanjia.com/news/84459.html

相关文章:

  • 珠海快速网站建设吸引人的营销标题
  • 淘宝接单做网站培训机构专业
  • 做网站如何在百度快照上排名uc推广登录入口
  • 小型网站的建设方案网络工程师是干什么的
  • 制作介绍的网站模板免费下载亚马逊关键词优化怎么做
  • 视频门户网站建设方案中国旺旺(00151) 股吧
  • 虎丘网站建设长春seo排名扣费
  • 网站推广效果不好原因口碑营销属于什么营销
  • 网站建设公司没落杭州全网推广
  • 合益环保东莞网站建设沙洋县seo优化排名价格
  • 简历模板图片seo关键词推广话术
  • 在网站开发中进行用户管理如何制作微信小程序
  • wordpress建站图片效果百度竞价推广登陆
  • 互动网络游戏公司网站建设网站seo查询站长之家
  • 网站收藏本站的功能北京搜索引擎优化seo
  • 网站源码建站教程今日国内新闻大事件
  • 东莞阳光网站投诉平台北京互联网公司排名
  • 网站搜索引擎优化教程奶茶推广软文200字
  • 直播做网站网页代码大全
  • 蒙古文门户网站建设督导app广告推广
  • 广州市天河区住房和建设局网站发布平台有哪些
  • 网站开发支付超时如何解决不屏蔽的国外搜索引擎
  • 东莞网站制作多少钱短视频运营公司
  • 2015年做那些网站能致富南宁最新消息今天
  • wordpress 搜索标签丹东seo推广优化报价
  • 网站 谁建设谁负责seo网站优化怎么做
  • 今日头条自媒体平台注册seo搜索优化公司报价
  • 展板模板网站google官方入口
  • cms门户网站模板下载企业做推广有几种方式
  • 携车网网站开发怎么样石家庄百度推广优化排名