- 博客(14)
- 收藏
- 关注
原创 AcWing-164.可达性统计(拓扑排序 + 位运算)
假设x可以到达的点构成集合 f ( x ), 且存在有向边(x, y),那么f(x)等于{ x } U f ( y ) ,(解释: 每个 x 结点都可以到达他本身,同时可以到达 x 的后继结点 y 可以到达的点)。f(1) = 1000 U f(3) = 1000 | 0011 = 1011 -----结点1可到达的点有:1,3,4。f(3) = 0010 U f(4) = 0010 | 0001 = 0011-----结点3可到达的点有:3,4。输出共 𝑁 行,表示每个点能够到达的点的数量。
2025-01-04 11:01:58
891
41
原创 拓扑排序模板题:洛谷-家谱树
拓扑排序的目的是:在一张有向无环图中,排出一个序列满足:图中的每一条有向边{x, y},x 在我们排出的序列中都出现在 y 之前,得到的序列我们成为拓扑序列。按照拓扑排序的思想,我们应该找到一个入度为0的点,而在这张图中我们找不到入度为0的点,这是因为图中出现了环。2.B和E都是入度为0的点,我们任意选一个就可以了,不难看出,拓扑序列不是唯一的,可能有多种。拓扑排序的思想是:每次选中入度为0的点,删除这个点和它的出边,并把它加入拓扑序列。4.不难看出,最后得到的拓扑序列是{A,B,E,D,C}.
2025-01-02 12:15:30
1257
28
原创 AcWing-1562.微博转发-再谈图的存储结构
在这篇文章中,我介绍了三种用C++实现图的存储结构的办法,分别是邻接矩阵,邻接表和直接存边法。在之前的介绍中,我们主要依赖于容器来实现图的存储,今天来介绍一下用数组来模拟邻接表。
2024-12-19 22:00:23
1166
24
原创 Meteor Shower - POJ 3669
贝西听说一场特殊的流星雨即将来袭;报道称这些流星将撞击地球并摧毁它们碰到的一切。为了自身安全,她发誓要找到一个安全的地点(一个永远不会被流星摧毁的地方)。她目前正在坐标平面的原点处吃草,并希望在前往新的、更安全的地点的途中避免被流星摧毁。报道称会有M颗流星(1 ≤M≤ 50,000)撞击,其中第i颗流星将在时间Ti(0 ≤Ti≤ 1,000)时撞击到点(XiYi)(0 ≤Xi≤ 300;每颗流星摧毁它撞击的点,以及四个直角相邻的格点。
2024-12-13 20:33:33
272
6
原创 详解位运算
位运算是基于整数的二进制表示进行的运算。由于计算机内部就是以二进制来存储数据,位运算是相当快的。它直接对整数的二进制位进行操作。位运算符作用于位,并根据每一位是0还是1来产生结果。基本的位运算共 6 种,分别为按位与(AND)、按位或 (OR)、按位异或 (XOR)、按位取反(NOT)、左移和右移。
2024-11-28 21:27:39
1358
4
原创 Curling 2.0 - POJ 3009
题目描述在MM-21星球上,他们的奥林匹克运动会结束后,冰壶运动变得越来越受欢迎。但是规则与我们的有些不同。游戏在一个标有方形网格的冰面游戏板上进行。他们只使用一块石头。游戏的目的是以最少的步数将石头从起点带到终点。图1显示了一个游戏板的示例。一些方块可能被障碍物占据。有两个特殊的方块,即起点和终点,它们没有被障碍物占据。(这两个方块是不同的。)一旦石头开始移动,它将一直移动直到撞到障碍物。为了将石头带到终点,你可能需要通过让石头撞到障碍物来停止石头,然后再次投掷。
2024-11-26 10:49:59
1093
4
原创 Ball - Aizu 0033
图中有一个分成两支的容器。容器口 A 中有编号从 1 到 10 的10个玉。可以把这些玉从口 A 掉落,然后放入左筒 B 或右筒 C 中。板 D 可以绕支点 E 左右旋转,通过移动板 D 来决定将玉放入筒 B 还是筒 C。给出从口 A 掉落的玉的顺序。按顺序将它们放入筒 B 或筒 C 中。如果筒 B 和筒 C 同时都能将编号较小的玉放在上面,编号较大的玉放在下面,则输出 YES;否则输出 NO。请编写程序实现上述功能。注意,不能在容器内交换玉的顺序。另外,假设可以连续将玉放入同一个筒内,并且筒 B 和筒
2024-11-26 10:48:30
835
2
原创 蓝桥OJ-编号359-求和
这里用一个vector<list<int>>color(m + 1)来存储相同颜色格子的下标,color[ i ]是一个list容器, i 是一种颜色,color[ i ]里存的是颜色为 i 的格子的下标。整个纸带的分数规定为所有满足条件的三元组的分数的和。我们的任务是计算所有满足三元组的分数(𝑥+𝑧)∗(𝑛𝑢𝑚𝑏𝑒𝑟𝑥+𝑛𝑢𝑚𝑏𝑒𝑟𝑧)的和,这个分数只与x, z有关。所以我们找到相同颜色的两个格子,并且他们的下标(小的是x, 大的是z)同奇或者同偶数,计算他们的分数,把所有的结果加起来就行。
2024-11-12 10:50:23
1425
6
原创 所有可达路径----图的存储结构练习题
原题链接:98. 所有可达路径 (kamacoder.com)思路:输出从结点 1 到结点 n 的所有可达路径,我们选择用深度优先搜索来做,其中加入当前路径的点标记为已经过。每条路径用一维vector存储,二维vector容器来记录所有的路径。这里给出三种图的存储方法来解,分别是邻接矩阵,邻接表和直接存边。这三种存储结构的介绍请移步我的上一篇文章:图的存储结构实现(C++)-优快云博客AC代码邻接矩阵://邻接矩阵#include<iostream>#in
2024-11-12 10:50:01
379
原创 蓝桥OJ- 编号171104-子2023
stringstream是基于字符串的流,在流入流出的过程中,利用它可以实现整型int与字符串string的转换。
2024-10-30 19:37:34
957
2
原创 AcWing - 730.机器人跳跃问题
然后分析跳跃过程,如果如果 𝐻(𝑘+1)>𝐸,那么机器人就失去 𝐻(𝑘+1)−𝐸 的能量值,所以机器人在这种情况下得到了-(H(k + 1) - E)的能量值,即E - H(k+1),同时题目中说另外一种情况也是E-H(k+1),那么这两种情况下机器人都得到了E-H(k+1)点能量。如果 𝐻(𝑘+1)>𝐸,那么机器人就失去 𝐻(𝑘+1)−𝐸 的能量值,否则它将得到 𝐸−𝐻(𝑘+1) 的能量值。,𝐻(𝑁) 代表建筑物的高度。在第1座建筑的能量值为E = E + E - H(1) = 2*E-H(1),(
2024-10-28 16:24:06
943
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅