317号子任务 201903-5 为了过前60分,想使用dijikstra优化算法的,但是最后还是只过了35分.这里的思路只需要先将所有的行星据点进行一次dijikstra,分别存储所有点到行星的最短距离,最后使用一个优先队列存储所有的距离就可以了. #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<vector> #include<…
[题目背景]“你在平原上走着走着,突然迎面遇到一堵墙,这墙向上无限高,向下无限深,向左无限远,向右无限远,这墙是什么?”——<流浪地球>原著我们带着地球去流浪了,为了处理流浪过程中可能会发生的危机,联合政府找到你,希望你能协助完成 317 号子任务:制定应急预案.[题目描述]地球的表面有 n 个据点,这些据点之间存在 m 条双向道路.这些据点中,有的是建立在行星发动机之下,受到行星发动机的保护(行星发动机据点),而其他据点则没有行星发动机的保护(普通据点,比如燃料采集据点/科研据点等).当发生…
7-1 畅通工程之局部最小花费问题(35 分) 某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出“畅通工程”的目标:使整个地区任何两个城镇间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通过快速路可达即可).现得到城镇道路统计表,表中列出了任意两城镇间修建快速路的费用,以及该道路是否已经修通的状态.现请你编写程序,计算出全地区畅通需要的最低成本. 输入格式: 输入的第一行给出村庄数目N (1≤N≤100):随后的N(N−1)/2行对应村庄间道路的成本及修建…
PTA 7-4 最小生成树的唯一性 (35分) 给定一个带权无向图,如果是连通图,则至少存在一棵最小生成树,有时最小生成树并不唯一.本题就要求你计算最小生成树的总权重,并且判断其是否唯一. 输入格式: 首先第一行给出两个整数:无向图中顶点数 N(≤500)和边数 M.随后 M 行,每行给出一条边的两个端点和权重,格式为"顶点1 顶点2 权重",其中顶点从 1 到N 编号,权重为正整数.题目保证最小生成树的总权重不会超过 2^30 输出格式: 如果存在最小生成树,首先在第一行输出其总权重…
PTA 7-2 畅通工程之局部最小花费问题 (35分) 某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出"畅通工程"的目标:使整个地区任何两个城镇间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通过快速路可达即可).现得到城镇道路统计表,表中列出了任意两城镇间修建快速路的费用,以及该道路是否已经修通的状态.现请你编写程序,计算出全地区畅通需要的最低成本. 输入格式: 输入的第一行给出村庄数目N (1≤N≤100):随后的N(N−1)/2行对应村庄…
1005 Programming Pattern (35 分) Programmers often have a preference among program constructs. For example, some may prefer if(0==a), while others may prefer if(!a). Analyzing such patterns can help to narrow down a programmer's identity, which is use…
地铁修建 201703-4 这题就是最短路的一种变形,不是求两点之间的最短路,而是求所有路径中的最长边的最小值. 这里还是使用d数组,但是定义不同了,这里的d[i]就是表示从起点到i的路径中最长边中的最小值. 在松弛的时候,注意是d[i]>max(d[u],cost),max保证了是所有路径中的最长边,>号保证了是最小值. 这里使用前向星+优先队列对dijikstra算法进行了优化. //#include <iostream> //#include<cstdio> //…
Candies POJ-3159 这里是图论的一个应用,也就是差分约束.通过差分约束变换出一个图,再使用Dijikstra算法的链表优化形式而不是vector形式(否则超时). #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<string> #include<vector> #include<queue>…
一.前言 1.在给定WSN的节点数目(100)前提下,节点随机分布,按照LEACH算法,实现每一轮对WSN的分簇.记录前K轮(k=10)时,网络的分簇情况,即每个节点的角色(簇头或簇成员).标记节点之间的关系,标记其所属的簇头. 2.在1的基础上,增加能量有效性控制:给定的所有节点具有相同的能量,考察第一个节点能量耗尽出现在第几轮.节点的能量消耗仅考虑关键的几次通信过程,其他能量消耗不计.通信过程能量消耗规则如下: Setup:簇成元:每次收到候选簇头信息-1,每个候选簇头仅被收集一次:通知簇头…
看到这题,第一印象,用dijkstra算法求n次单源最短路,时间复杂度O(n^3),超时30分妥妥的. 于是用优先队列优化,O(n*mlogm),快很多,但依然30. 那么不妨换一种思路,题目要求的是任一据点到最近k个行星发动机据点的最短路之和,也就是说我们不必求出所有的最短路,而只需要求出各行星发动机据点到其它据点的最短路. 若行星发动机据点个数为t,则只需求t次最短路,这样一来,时间复杂度变为O(t*mlogm). 又见子任务:对于60%的数据 保证行星发动机数量和k相同. 于是,有60分的…