图类算法
文章平均质量分 80
最短路径 / 环 / 最小生成树 / 连通分量 / 广搜 / 深搜 / 等
KuB特洛夫斯基
该用户涉嫌装B,已被平台举报!
展开
-
【JAVA】求拓扑排序可能在第二个位置的点个数(Pro20210924)(拓扑排序)
【JAVA】求拓扑排序可能在第二个位置的点个数(Pro20210924)(拓扑排序)题目思路代码题目N个人在举行一对一比拼的比赛。每个人的实力都是确定的,互不相同且不会改变。比赛的胜负总是由实力决定。因为是没有进行完所有比赛的状态,还无法准确看出谁是第一名,谁是第二名。比如,假设知道下面一部分比赛的结果。参赛人员从1到N编号,箭头出发点上的人输给了箭头终点上的人。(胜←败)[图1][图1]中可能成为第一的人有2,3,5,8这4名。因为第一名还没有确定,所以4个人都有可能成为第二名。如果有人只输给原创 2021-09-29 10:20:37 · 134 阅读 · 0 评论 -
拓扑排序特点及适用范围
拓扑排序特点及适用范围特点适用范围:特点拓扑排序是针对有向图的;做拓扑排序的图不一定是连通图,可能有多个连通分量;拓扑排序是一个动作,而不是结果;一个图的拓扑排序结果不存在,则该图存在环;一个图的拓扑排序结果存在,则:5.1. 图的拓扑排序结果可能有多个,但按字典排序的结果是唯一的;5.2. 至少有一个入度是0的点;5.3. 至少有一个出度是0的点;对于一个图的拓扑排序结果,如果新加上的边,是从前面的点指向后面的点,则新图仍然是无环图。适用范围:可判断有向图是否有环(拓扑排序结原创 2021-09-16 13:50:42 · 1707 阅读 · 0 评论 -
【JAVA】有向无环图到达固定点的最大深度及分值(Pro20210910)(拓扑排序)
【JAVA】有向无环图到达固定点的最大深度及分值(Pro20210910)(拓扑排序)题目思路代码题目密码:6667 竞赛(测试用例总数:40 个,1 秒 (C/C++),1.5 秒 (JAVA)/内存要求:256 M,堆栈 1 M)智宇决定参加在某星球举办的竞赛。整个竞赛场地共有 N 个关卡,分别从 1 到 N 进行编号,通过连接两个关卡的 M 条单行道连通这 N 个关卡。每个关卡只能经过一次,关卡 1 始终为终点。在这场竞赛中,智宇可以任意选择在哪个关卡出发,然后在到达终点前,获取尽量多的积原创 2021-09-13 15:58:23 · 387 阅读 · 0 评论 -
【JAVA】无向连通图到达所有点必须经过固定点成本之和的最小值(Pro20210903)(Dijkstra + DP)
【JAVA】无向连通图到达所有点必须经过固定点成本之和的最小值(Pro20210903)(Dijkstra + DP)题目思路代码题目略思路每次到达下一个点必须经过1号店,可以拆解为从当前点到1号点的最短路径,加上从1号点到目的地的最短路径。也就是说,整个过程可以分解为:1号点到剩余所有点:在下面会包含,不用单独列举(计算)2号点到剩余所有点:【2 --> 1 --> 3 --> 1 --> 4 --> 1 --> 5… --> N-1 -->原创 2021-09-08 10:48:55 · 187 阅读 · 0 评论 -
【JAVA】连通图到达所有点的最小成本(Pro20210820)(Floyd + DFS)
【JAVA】连通图到达所有点的最小成本(Pro20210820)(Floyd + DFS)题目思路代码题目在 S 村,有 N 座房屋,通过 M 条道路连通,N 座房屋中的其中两个是餐厅。村民都在自己家里从餐厅订外卖,但全村只有一个外卖员,他要找出最快捷的外卖路径。如上 [图] 所示,蓝色的点代表居民房屋,橙色的点代表餐厅,绿色的点代表外卖员位置,直线边上的数字代表道路的长度。假设村民们在餐厅下单订购的外卖如上表所示。外卖员从 8 号屋出发 → 到 6 号餐厅取 4 号和 5 号屋的餐 → 送餐到 4原创 2021-08-31 08:53:09 · 735 阅读 · 0 评论 -
【JAVA】求有两次调整权值机会的最短路径(Pro20210813)(BFS(Dijkstra思想))
【JAVA】求有两次调整权值机会的最短路径(Pro20210813)(BFS(Dijkstra思想))題目:思路:代码:題目:假设有个国家有 N 座城市,通过 M 条道路连通,城市从 1 到 N 进行编号,每条道路上都会收取过路费。据说,这个国家每年的暑期会向全体市民发放两张过路费折扣券(每张券的折扣力度可能会不同)。John 住在 1 号城市,准备前往 N 号城市度假,想要使用折扣券确保支付最少的过路费。如上 [图] 所示,假设从 1 号城市出发,前往 8 号城市,收到的折扣券金额分别是 2 和原创 2021-08-27 15:19:31 · 114 阅读 · 0 评论 -
【JAVA】连通分量中的背包问题(Pro20210712)(BFS + DP)
【JAVA】连通分量中的背包问题(Pro20210712)(BFS + DP)题目思路代码题目S 公司的网络管理员琳收到了一通紧急来电。来电告知公司内部设备连接的网络中发现了恶意代码,必须马上采取相应措施。S 公司有 N 台设备,通过 M 根线路连接,所以如果其中一台设备感染恶意代码,其他设备也会通过连接网络感染上恶意代码。目前,已有 K 台设备感染恶意代码,代码扩散危机迫在眉睫。受感染的设备需要立即处理,但在目前的情况下,最多只能处理三台设备。保受感染的设备数量尽可能少的情况下,帮助琳确定要处理的原创 2021-08-03 11:40:42 · 131 阅读 · 0 评论 -
【Java】求连通图中的K个连通分量权值之和的最小值Pro20210720(最小生成树(MST) / 克鲁斯卡尔 Kruskal)
【Java】求连通图中的K个连通分量权值之和的最小值Pro20210720(克鲁斯卡尔 Kruskal)题目思路代码(调整前):优化后(求MST时,求出(N - 1 - K + 1)条边即可):代码(优化后):题目琳恩正在计划前往S国进行K次旅行。S国有N座城市,城市之间通过M条道路连接着。琳恩可从任意一座城市前往另一座城市,移动时,每条道路均会产生通行费,所以她需要支付费用。琳恩计划在K次旅行期间,通过利用最少的道路来访问N座城市,而每座城市至少需要访问一次。如果按照如上的方式旅行时,存在多种方案原创 2021-08-02 14:49:41 · 379 阅读 · 0 评论 -
【JAVA】求飞机游戏中最小横向移动次数Pro20210719(DP / BFS(Dijkstra思想))
题目整个游戏地图由M个横向格子和N个纵向格子组成,地图上的格子有可能是空的,也可能有障碍物,我们需要在这个地图中进行滚动游戏。你能看到的游戏屏幕的横向和纵向大小都是M个格子。地图中,从顶部开始的M行不存在障碍物。游戏开始时,在屏幕上可以看到整个地图中最底部的M个纵向和横向格子,你的飞船位于屏幕左下方(即整个地图的左下方格子)的格子。你的飞船将一直位于游戏屏幕的末行,游戏中的每一步,地图都会向下滚动一行。换句话说,每进行一步,游戏屏幕中显示的地图都会向上移动一行。由于飞船一直位于屏幕末行,所以它在整个地原创 2021-07-28 13:51:02 · 173 阅读 · 0 评论 -
【JAVA】求可汇合后同行的两人到达固定终点的最小成本Pro20210622(最短路径 迪杰斯特拉(Dijkstra))
题目当前有一个N行M列网格模型的国家。每个单元格代表着一座城市。每次通过一座城市时,都会产生一笔通行费。今年夏天将在这个国家的某座城市举办一个盛大的庆典活动。约翰和克洛伊为了参加这个庆典,他们需要各自从自己居住的城市出发,前往到举办庆典活动的城市。前往时,可以移动到上下左右相邻的城市,一旦离开一座城市,就需要立即支付通行费。此外,由于通行费是按团体收费而不是按人数收费,因此在移动的途中,在某一座城市碰面,然后一同出行要比单独出行花费的更少。如上图所示,假设约翰居住在[2,2],克洛伊居住在[2,5]原创 2021-07-26 16:40:59 · 270 阅读 · 0 评论