- 博客(20)
- 收藏
- 关注
原创 割点与割边
假如到了u后,图中还有顶点v是没有访问过的点,如何判断v在不经过u的情况下是否还能回到之前访问过的任意一个点?在深度优先遍历的时候访问到u(点2)点,此时图被u (点2)分割成两部分,一部分为已访问点,另一部分为未访问点。如果u是割点,那剩下的未被访问点中至少有一个点在不经过点k的情况下无论如何也回不到已访问的点。首先从图中任意节点开始dfs遍历上图,得到一颗生成树, 如下图,圆圈中数字是顶点编号, 圆圈右上角的数表示这个顶点在遍历时是第几个被访问到的,叫做“时间戳”。下面寻找复杂度低的方法来解决。
2024-07-15 20:00:42
275
原创 Kruskal算法求最小生成树
给定一张边带权的无向图 G=(V,E),其中 V 表示图中点的集合,E 表示图中边的集合,n=|V|,m=|E|。由 V 中的全部 n 个顶点和 E 中 n−1 条边构成的无向连通子图被称为 G 的一棵生成树,其中边的权值之和最小的生成树被称为无向图 G 的最小生成树。给定一个 n 个点 m 条边的无向图,图中可能存在重边和自环,边权可能为负数。求最小生成树的树边权重之和,如果最小生成树不存在则输出 impossible。...(((m -__-)m┏┛赞┗┓。
2024-07-15 09:45:05
280
原创 城市之间的最短路
小丁同学准备去A国旅游,他买了一张A国的地图,地图标出了A国著名的n个旅游热门城市,并标注了这n个城市之间有m条路线相连以及每条路线的长度。Daumen hoch,Donnez-lui un coup de pouce vers le haut,親指を立てる,Поставьте большой палец вверх。人平均活到六十八岁,一共两万四千八百二十天,十九万个小时,三千五百万分钟,差不多二十一亿秒左右,这十秒,你在读这段话,这十秒,你只属于我,陌生人我爱你。
2024-07-10 20:10:51
202
原创 平面最近点对(加强版)
宋江,卢俊义,吴用,公孙胜,关胜,林冲,秦明,呼延灼,花荣,柴进,李应,朱仝,鲁智深,武松,董平,张清,杨志,徐宁,索超,戴宗,刘唐,李逵,史进,穆弘,雷横,李俊,阮小二,张横,阮小五,张顺,阮小七,杨雄,石秀,解珍,解宝,燕青,朱武,黄信,孙立,宣赞,等。给定平面上 n 个点,找出其中的一对点的距离,使得在这 n个点的所有点对中,该距离为所有点对中最小的。接下来 n 行:每行两个实数:x ,y 表示一个点的行坐标和列坐标,中间用一个空格隔开。仅一行,一个实数,表示最短距离,精确到小数点后面 4 位。
2024-02-03 21:37:34
238
2
原创 一维最接近点对问题
有一天偶遇佛祖,佛祖说:我可以给一个愿望。佛祖说:可以,不过只有四天。我说:好,就春天,夏天,秋天,冬天。佛祖说:不行,就三天。我说:好,就昨天,今天,明天。佛祖说:不行,就二天。我说:好,就白天,黑天。佛祖说:不行,就一天。佛祖哭着说好,就让赞你的人开心健康每一天吧。给定x轴上n个点,找其中的一对点,使得在n个点的所有点对中,该点对的距离最小。严格地说,最接近点对可能多于1对,为了简单起见,这里只限于找其中的一对。接下来n个数字,表示n个点在x轴上的位置。输出仅一行,为一个实数,表示最接近点对的距离。
2024-02-03 21:27:30
254
2
原创 九连环问题
九个环从左到右依次为 ~1~9,每个环有两种状态:1 和 0,1 表示环在杆上,0 表示环不在杆上。九连环是一种源于中国的传统智力游戏,有九个金属环套在上方一个由金属丝做成的环杆上,并且互相牵连。输出若干行,每行仅包含中间第 i步的状态。如果输入的步数大于实际变换所需的步数,则输出-1。输入有若干行,每行一个整数 i。
2024-01-31 21:54:34
194
1
原创 时间复杂度
其中`F i x y`表示新建变量 (变量 i 不可与未被销毁的变量重名)并初始化为 x, 然后判断 i 和 y 的大小关系,若 i 小于等于 y 则进入循环,否则不进入。小明正在学习一种新的编程语言 A++,刚学会循环语句的他激动地写了好多程序并 给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序, 于是你的机会来啦!今年,赞了我的人都娶了年轻貌美的姑娘结婚那天中了900万。n 是一个表示数据规模的变量,在时间复杂度计算中需保留该变量而不能将其视为常数,该数远大于 100。
2024-01-31 21:37:27
413
1
原创 小球钟(模拟算法)
当第5个小球滚入该轨道,它们的重量使得轨道倾斜,原先在轨道上的4个小球按照与它们原先滚入轨道的次序相反的次序加入到钟底部的小球队列。引起倾斜的第5个小球滚入显示5分钟的轨道。当第4个小球滚入该轨道,它们的重量使得轨道倾斜,原先在轨道上的3个小球按照与它们原先滚入轨道的次序相反的次序加入钟底部的小球队列,而这第4个小球滚入了显示小时的轨道。从15分钟轨道滚入的第24个小球将使小时轨道倾斜,这23个球同样以相反的次序加入钟底部的小球队列,然后那第24个小球同样加入钟底部的小球队列。输入定义了一序列的小球时钟。
2024-01-31 20:45:47
331
1
原创 立体的图形
小渊有一块面积为 m×n 的矩形区域,上面有 m×n 个边长为 1 的格子,每个格子上堆了一些同样大小的积木(积木的长宽高都是 1),小渊想请你打印出这些格子的立体图。接下来的 m 行,是一个 m×n 的矩阵,每行有 n 个用空格隔开的整数,其中第 i 行第 j 列上的整数表示第 i 行第 j 列的格子上摞有多少个积木(1≤ 每个格子上的积木数 ≤100)。输出包含题目要求的立体图,是一个 K 行 L 列的字符串矩阵,其中 K 和 L 表示最少需要 K 行 L 列才能按规定输出立体图。
2024-01-31 17:15:49
188
1
原创 棋盘问题(翻转)
有n×n的正方形棋盘,每个格子里的棋子要么是黑色向上,要么是白色向上,当把一个格子里的棋子颜色改变(黑→白或者白→黑)时,其周围上下左右(如果存在的话)的格子里的棋子颜色也被反转!输入第一行为一个整数n(1≤n≤16),随后n行n列描述棋盘,其中b代表黑色,w代表白色。问至少反转几个棋子可以使棋盘上的全部棋子变为白色或者黑色向上?输出一个整数即翻转次数。若无法完成,则输出“
2024-01-31 16:31:39
360
原创 快算24(24点)
注意,所有的中间结果必须是整数,所以一些除法运算是不允许的(例如(2*2)/4是合法的,2*(2/4)是不合法的)。如果有解的话,只需输出一个解,输出的是三行数据,分别表示运算的步骤,如果两个操作数有大小的话则先输出大的,如果没有解则输出“快算24点游戏规则是这样的,作为游戏者将得到4个1~9之间的自然数作为操作数,而你的任务是对这4个操作数进行。若给出的4个操作数是1、2、3、7,则一种可能的解答是 1+2+3*7=24。的4种运算,要求运算结果等于24。:输入4个1~9之间的自然数。
2024-01-31 16:23:27
415
原创 欧拉回路题解
输入一个无向连通图的,判断这个图是否存在欧拉回路,如果没有则输出“no oula circle”,如果有,输出以顶点1开始的一条欧拉回路,回路上顶点序号优先小的。第一行一个整数 n 和 k,表示这个图有 n 个顶点、k 条边,接下来 k 行,每行两个整数 ai 和 aj,表示顶点 ai 和 aj之间有一条边。如果不存在欧拉回路,请输出“no oula circle”,如果有欧拉回路,请输出顶点 1 开始的欧拉回路的顶点编号。
2023-10-28 15:07:22
198
1
原创 Me写过最蠢的代码
一个全是字符的字符串,小明想获取它的第一个字符,你这个聪明的小小程序“猿”能帮助他吗?//我当时甚至用上了强转。//我自己都不记得我会用栈。(记得不太清楚,轻喷)
2023-10-02 17:31:30
102
2
原创 一只蒟蒻的c++笔记
在 1111 分制下,此时比赛的结果是华华第一局 1111 比 00 获胜,第二局 1111 比 00 获胜,正在进行第三局,当前比分 11 比 11。其中第一部分是 1111 分制下的结果,第二部分是 2121 分制下的结果,两部分之间由一个空行分隔。华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在 1111 分制和 2121 分制下,双方的比赛结果(截至记录末尾)。取用时,读到1,胜数++,读到二,负数++,按照上文判定来输出,读到0,表明记录结束了,输出之前剩余的分数即可。
2023-09-09 17:02:15
69
原创 一只蒟蒻的C++笔记
假设有 N 盏灯(N 为不大于 50005000 的正整数),从 11 到 N 按顺序依次编号,初始时全部处于开启状态;第一个人(11 号)将灯全部关闭,第二个人(22 号)将编号为 22 的倍数的灯开,第三个人(33 号)将编号为 33 的倍数的灯做相反处理(即,将打开的灯关闭,将关闭的灯开)。依照编号递增顺序,以后的人都和 33 号一样,将凡是自己编号倍数的灯做相反处理。问当第 N 个人操作完之后,有哪些灯是关闭着的?
2023-09-09 16:39:18
113
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人