图论
文章平均质量分 78
lianxuhanshu_
这个作者很懒,什么都没留下…
展开
-
Codeforces Round 923 (Div. 3) F. Microcycle【Kruskal算法思想+并查集+dfs找环】
给定一张 n 个点,m 条边,边有边权的无向图,无重边自环,不保证连通。定义一个简单环为不经过重复点与重复边的环路径,保证全图至少有一个简单环。记一个简单环的权值是环上最小的边权,你需要找到任意一个全图中权值最小的一个简单环并输出它。时间复杂度:O(n+mlog(m)),n表示点数,m表示边数。空间复杂度:O(n+m),n表示点数,m表示边数。原创 2024-03-23 11:24:53 · 283 阅读 · 0 评论 -
Codeforces Round 925 (Div. 3) F. Chat Screenshots【拓扑排序找环】
第 i 行包含 n 个整数 aij ( 1≤aij≤n ,所有 aij 都是不同的)--参与者显示给参与者 ai0 的顺序,其中 ai0 --截图的作者。给出 n 个人进行的聊天室中,k 个人做的截图,每个截图中截图者都在第一位置,其后各位按照发帖时间前后确定。每个测试用例描述的第一行包含两个整数 n 和 k ( 1≤k≤n≤2⋅10^5,n⋅k≤2⋅10^5 )--聊天参与者人数和发布屏幕截图的参与者人数。时间复杂度:拓扑排序O(n),输入k张截图,每张n个数O(n*k),最终时间复杂度O(n*k)。原创 2024-03-20 10:52:36 · 281 阅读 · 0 评论 -
洛谷 P1038 [NOIP2003 提高组] 神经网络【拓扑序处理】
这个题目题目背景比较复杂,然后题目也比较长,但是读完题目,你会发现,这就是一个拓扑序结构,然后给出了传递的规则和公式,所以我们直接根据拓扑序处理即可,思路是非常简单的,但是可能细节比较多,稍不注意就会出错,下面描述一下几个细节处理的地方。下图是一个简单的三层神经网络的例子。细节1:输入层点的阈值U[i]是没有意义的,所以输入点的C[i]就是C[i],非输入点后面还要减去U[I],在前面减去和在后面减去是没有区别的,对于非输入层的点在输入的时候直接C[i]-=U[i]即可。NOIP 2003 提高组第一题。原创 2024-02-23 12:31:59 · 1237 阅读 · 0 评论 -
洛谷 P1027 [NOIP2001 提高组] Car 的旅行路线【推公式+勾股定理+最短路】
接下来有 S 行,其中第 i 行均有 7 个正整数xi1,yi1,xi2,yi2,xi3,yi3,Ti,这当中的 (xi1,yi1),(xi2,yi2),(xi3,yi3),分别是第 i 个城市中任意 3 个机场的坐标,Ti 为第 i 个城市高速铁路单位里程的价格。S 表示城市的个数,t 表示飞机单位里程的价格,A,B 分别为城市A,B 的序号。对于 100% 的数据,1≤n≤10,1≤S≤100,1≤A,B≤S。每组的第一行有 4 个正整数 S,t,A,B。原创 2024-02-22 11:58:19 · 714 阅读 · 0 评论 -
leetcode 105. 从前序与中序遍历序列构造二叉树【构造二叉树】
每次在inorder中暴力找根结点的时间复杂度为O(n),我们可以先用一个哈希表记录inorder中所有数字的下标,就可以把这个找的过程优化到O(1),根据上述分析,直接递归构造即可,具体分析见代码处.,请构造二叉树并返回其根节点。原创 2024-02-20 12:25:49 · 767 阅读 · 1 评论 -
Acwing 5469. 有效点对【正难则反+巧妙选择根节点】
对于图2,可以认为是图1的一种特殊情况,需要特判一下,假设以y为根节点的子树大小为sizey,那么无效点对的起点是y子树中的某个点,无效点对的终点是y子树之外的任意一个点,那么无效点对的数目就是sizey*(n-sizey),那么有效点对的数目就是n*(n-1)-sizey*(n-sizey)。树上有两个不同的特殊点 x,y,对于树中的每一个点对 (u,v)(u≠v),如果从 u 到 v 的最短路径需要经过点 x 和点 y(路径的两个端点也算经过),且相对顺序上。一个整数,表示有效点对的数量。原创 2024-02-11 17:29:17 · 534 阅读 · 0 评论 -
leetcode.2846. 边权重均等查询【lca+树形dp】
第 4 条查询,将边 [0,1]、[1,2]、[2,3] 的权重变更为 2。对于每条查询 queries[i] ,可以证明 answer[i] 是使从 ai 到 bi 的路径中的所有边的权重相等的最小操作次数。对于每条查询 queries[i] ,可以证明 answer[i] 是使从 ai 到 bi 的路径中的所有边的权重相等的最小操作次数。第 1 条查询,从节点 0 到节点 3 的路径中的所有边的权重都是 1。第 2 条查询,从节点 3 到节点 6 的路径中的所有边的权重都是 2。原创 2024-01-26 13:18:35 · 1428 阅读 · 0 评论 -
洛谷 P1613 跑路【最短路+倍增】
小 A 的家到公司的路可以看做一个有向图,小 A 家为点 1,公司为点 n,每条边长度均为一千米。时间复杂度:时间复杂度的瓶颈在于倍增,倍增处理时间为O(k*(n^3)),k=64,n=50,时间大概是8e6,这个时间是肯定可以过的。本题最关键的一步就是使用倍增的思想进行预处理,然后建图,然后求最短路,想到了倍增预处理这一步这个题目基本上就已经顺利解决了。空间复杂度:空间复杂度瓶颈在于预处理数组g数组,空间为O((n^2)*64),这个空间是非常小的,空间是肯定足够的。一行一个数字,表示到公司的最少秒数。原创 2024-01-19 11:27:52 · 887 阅读 · 1 评论