摘要:
一、技术总结 1. 首先对于题意的理解,N个城市,M条无向边,现在给定某城市作为初始城市,然后一个城市作为终点城市,每条边都需要花费路费,同时每个城市具有幸福值,如果路费最少的有多条,就选择幸福值总和最高的一条,如果任然不唯一,就是选择平均幸福值最高的路径。 2. 还有一点需要解决的问题是,城市代号 阅读全文
摘要:
一、技术总结 1. 第一点是关于图的编号如何处理,因为气站混合在图中,同时编号带有因为字母,所以解决办法是把气站编号依次往居民编号后加即n+1开始。需要编写getID函数,将字符变为数字的公式为 int ID = 0; ID = ID 10 + (str[i] '0'); ,具体参考代码处 2. 第 阅读全文
摘要:
一、技术总结 1. 这一题,题意的理解十分关键,主要有两个点,在花费时间最少的前提下,一个是在去的路上进行调整,能够带的单车最少优先;如果还是有多条,那么带回单车最少的优先。说明只能在去的路上对车站的车进行调整,回的时候不能够进行调整,试想如果回的时候也可以调整,那么就不会出现第二个限制条件了。 2 阅读全文
摘要:
一、Bellman Ford算法 1. 用于解决单源最短路径的问题,但也能够处理有负权边的情况。这是与Djikstra算法不同的地方。 2. 关于复杂度,要比Djikstra的复杂度更高一点。O(VE),而Djikstra复杂度是O(V^2),V是点的数量,E是边的数量 3. 原理,就是会出现负环的 阅读全文
摘要:
一、技术总结 1. 这一题是关于图的遍历,但是涉及Djikstra算法,在求最短路径的同时,还要把路径记录下来;同时增加了边权,也就会每个城市之间的花费; 2. 这里采用Djikstra算法+DFS遍历的方法 3. 第一步使用Djikstra算法求出最短路径,使用vector类型pre数组进行存储, 阅读全文
摘要:
一、fill()函数 1. 按照单元赋值,将一个区间的元素都赋同一个值 2. 在头文件里面 3. fill函数可以赋任何值, 二、memset()函数 1. 按照字节填充 2. 在头文件里面 3. 因为是按照字节填充,所以一般memset只能用来填充char数组(因为char数组只占一个字节)如果填 阅读全文
摘要:
一、技术总结 1. 这是一道考查Djiktra算法的题目,主要是求解最短路径的前提下,求每个城市点权的最大值,同时最短路径的条数。 2. 只需要在Djikstra算法的基本架构下,添加一些条件即可,点权是添加一个数组weight存储每个点的权值,然后再创建数组w,用于存储。初始化是,除了起点s,w[ 阅读全文
摘要:
一. Djikstra算法定义 1. 用来解决单源最短路径的问题,即给出图G和起点s,通过算法到达每个顶点的最短距离。 2. 对图G(V, E)设置集合S, 存放已被访问的顶点,然后每次从集合V S中选择与起点s的最短距离最小的一个顶点u,访问并加入集合S。之后,令顶点u为中介点, 优化起点和所有的 阅读全文
摘要:
一、技术总结 1. 这一题题目很好理解,就是求一个图如果只有一个连通块,那么就可以被当做tree,然后要求出所有结点中如果被选中作为根结点,能达到的最大高度,如果有多个按照从小到大的顺序输出。如果有多个连通块,直接输出题目中的要求。 2. 但是开始自己写想思路不清晰,也是想就是正常思路,判断深度,然 阅读全文
摘要:
一、技术总结 1. 这一题是考查图的知识,题目的意思要理解清楚,就是考查统计图中连通块的数量,也就是没有一个结点后。 2. 怎么删除该结点,并且统计连通块的数量成为问题解决的关键,这里可以当访问到结点时,直接返回,或则跳过,这种操作就是相当于删除了该结点。 3. 这个是初始化标记数组,可以用于反复的 阅读全文