- 博客(61)
- 收藏
- 关注
原创 闇の連鎖
闇の連鎖题意数据范围思路代码题意给定一棵nnn个节点的图,其中有n−1n - 1n−1条树边,mmm条非树边。第一次可以删掉一条树边,第二次可以删掉一条非树边,使得这个图最后不连通。求方案数。数据范围1≤n≤1000001 \leq n \leq 1000001≤n≤1000001≤m≤2000001 \leq m \leq 2000001≤m≤200000思路我们考察所有所有树边,如果切掉这条边的话,可以切哪些非树边,使得最后图不连通。如果这条树边在一个环中,那么只需要把构成这个环的那条非树
2020-12-04 16:49:13
307
原创 运输计划
运输计划题意数据范围思路代码题意给定一棵nnn个节点的树,给定mmm条路径,现在将树上一条边的边权变成000,使得这mmm条路径的最大值最小。数据范围1≤n,m≤3000001 \leq n, m \leq 3000001≤n,m≤300000思路考虑二分答案。每次判断的时候,考察长度大于midmidmid的路径,我们需要删掉所有这样的路径都经过的边。如果删掉的边的权重大于等于最长路径与midmidmid之差,那么midmidmid就是可行的。那么如何维护所有长度大于midmidmid的路径共
2020-12-04 16:26:24
280
原创 LR(0)分析表的构造
LR分析表的构造活前缀构造识别活前缀的DFA文法的拓广将文法G(S)G(S)G(S)拓广为G′(S′)G'(S')G′(S′)LR(0)项目构造识别文法所有活前缀的DFA通过计算项目集规范族构造识别活前缀的DFA有效项目有效项目的性质LR(0)项目集规范族的构造项目集的闭包CLOSURE状态转换函数示例LR(0)项目集规范族的构造算法示例构造LR(0)分析表的算法LR(0)分析表的构造构造LR(0)分析表的算法示例活前缀活前缀:是指规范句型的一个前缀,这种前缀不含句柄之后的任何符号。即,对于规范句型α
2020-11-29 00:21:06
10588
原创 LR分析法
LR分析法概述句柄和规范规约定义规范规约规范句型LR分析法规范规约VS句柄LR分析法的结构LR分析表LR分析法演示LR文法概述规范规约:句柄作为可规约串工作流程:将文法交给分析表产生器,产生分析表。将输入交给总控程序,配合上分析表,得到输出句柄和规范规约定义短语:令GGG是一个文法,SSS是文法的开始符号,假定αβδ\alpha \beta \deltaαβδ是文法GGG的一个句型,如果有:S⇒∗αAδS \xRightarrow{*} \alpha A \deltaS∗αAδ且A⇒+
2020-11-28 21:48:01
1146
原创 算符优先文法
算符优先文法概述自底向上分析优先关系算符文法算符优先文法构造算符优先表的算法确定算符优先关系构造集合FIRSTVT(P)FIRSTVT(P)FIRSTVT(P)的算法构造集合LASTVT(P)LASTVT(P)LASTVT(P)的算法构造算符优先表实例算符优先分析算法最左素短语最左素短语定理流程评价概述自底向上分析在自底向上分析中,分析过程的每一步都是从当前句型中选择一个可规约的子串,将它规约到某个非终结符。自底向上分析的关键问题是在分析过程中如何确定句柄或其他可规约串,也就是说如何知道何时在栈符号
2020-11-28 16:40:58
9258
原创 2020南京站前训练计划
训练计划碎碎念训练计划碎碎念11月初打完CCPC之后,就陷入了无休止的做实验,基本上每周每门课都要留实验,每天的训练时间特别有限。这段时间博客也没来得及更新,现在打算每天挤一些时间来训练。ICPC南京站之前,可能重心在学一些不太难的新知识、新方法上吧,希望水平能提升一些。学习的重点还是在图论和数据结构上。训练计划因为后面的时间不确定性特别大,因此我就只列一个大概的学习顺序吧,也相当于是一个打卡记录表。尽力去学,也不强求什么。可持久化线段树(主席树)线段树扫描线问题SplayLCT树套树入
2020-11-25 15:01:03
156
原创 mex(主席树)
mex题意数据范围思路代码题意有一个长度为nnn的数组{a1,a2,…,an}\{a_1,a_2,\dots, a_n\}{a1,a2,…,an}。mmm次询问,每次询问一个区间内最小没有出现过的自然数。数据范围1≤n,m≤2×1051 \leq n, m \leq 2 \times 10^51≤n,m≤2×1050≤ai≤1090 \leq a_i \leq 10^90≤ai≤109思路很经典的一道应用主席树的题目。每个区间记录这个去年所有数最近出现位置的最小值,如果说某个数小于等于
2020-11-25 14:42:50
388
原创 Kill the Tree(树的重心)
Kill the Tree题意思路代码题意求一棵有根树中,以每个节点为根的子树的所有重心思路根据性质:把两棵树通过一条边相连,新的树的重心在原来两棵树重心的连线上。一棵树最多有两个重心,且相邻。重心一定在以重儿子为根的子树的重心到该点的路径上。我们在以重儿子为根的子树的重心到该点的路径上找答案即可。在从重儿子的重心向上爬的过程中,什么样的点是更优的呢?我们可以考虑向上走的那条边对总距离的贡献,减少的量是除了重儿子重心的子树外其他的点的数量,增加的量是重儿子重心的子树中节点的数量。也就是s
2020-11-07 10:30:12
399
原创 树重心的性质
树重心的性质定义性质定义找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心。性质树中所有点到某个点的距离和中,到重心的距离和是最小的,如果有两个重心,他们的距离和一样。把两棵树通过一条边相连,新的树的重心在原来两棵树重心的连线上。一个点是重心,等价于以这个点为根,它的每个子树的大小,都不会超过整个树大小的一半。一棵树最多有两个重心,且相邻。一棵树添加或者删除一个节点,树的重心最多只移动一条边的位置。重心一定在以重儿子为根的子树的重心到该点的路径上。...
2020-11-07 10:18:52
484
原创 Joy of Handcraft(线段树)
Joy of Handcraft题意数据范围思路代码题意有nnn个灯泡,每个灯泡有两个参数tit_iti和xix_ixi,分别指运行周期和亮度。第iii个灯泡在2kti+12kt_i+12kti+1秒到2kti+ti2kt_i+t_i2kti+ti秒是亮的,在2kti+ti+12kt_i+t_i+12kti+ti+1秒到2kti+2ti2kt_i+2t_i2kti+2ti秒是灭的。问第111秒到第mmm秒,每一秒亮度最大值是多少。数据范围1≤T≤1001 \leq T \leq 1
2020-11-05 14:18:54
253
原创 Minimal Height Tree(思维、贪心)
Minimal Height Tree题意数据范围思路代码题意给定一个元素个数为nnn的序列aaa,这个序列是一棵树宽度优先遍历得来的。这棵树有几个特点:根的编号为111、任意节点的孩子结点的编号依次递增、任意两个节点的编号不相同。现在要求所有满足要求的树的最小高度。数据范围1≤T≤10001 \leq T \leq 10001≤T≤10002≤n≤2∗1052 \leq n \leq 2*10^52≤n≤2∗1051≤ai≤n;ai≠aj;a1=11\leq a_i\leq n; a_i≠a_
2020-11-02 21:33:53
385
原创 Tree(树链剖分、线段树)
Tree题意数据范围思路代码题意给定一棵节点个数为nnn的树,每个点都有点权aia_iai。支持两种操作:一条路径上的所有点权开根号查询一条路径上的点权和现在有mmm个操作数据范围1≤n,m≤1051 \leq n,m \leq 10^51≤n,m≤1050≤ai≤1090 \leq a_i \leq 10^90≤ai≤109思路树链剖分模板+花神游历各国。代码#include <iostream>#include <cstdio>#include
2020-10-27 22:01:40
98
原创 Majority 3-SAT(2-Sat)
Majority 3-SAT题意数据范围思路代码备注题意假定有nnn个还未被赋值的布尔变量x1,x2,…,xnx_1,x_2,\dots ,x_nx1,x2,…,xn。对于三元组(a,b,c)(a,b,c)(a,b,c),如果是满足的,那么a,b,ca,b,ca,b,c至少有两个是取真值的,这里的a,b,ca,b,ca,b,c是布尔变量或者是布尔变量取反。现在给定mmm个三元组,问能否给nnn个布尔变量赋值,使得这mmm个三元组都是满足的。数据范围1≤n,m≤100001 \leq n,m
2020-10-27 20:01:39
357
原创 花神游历各国(线段树)
花神游历各国题意数据范围思路题意给定一个长度为nnn的序列,支持两种操作:返回区间和区间每个数开根操作个数为mmm数据范围1≤n≤1051\leq n \leq 10^51≤n≤1051≤m≤2∗1051\leq m \leq 2*10^51≤m≤2∗1050≤wi≤1090\leq w_i \leq 10^90≤wi≤109思路这道题显然要用线段树维护。首先看区间每个数的修改,第一反应是懒标记,但是发现难以维护。这个时候,我们思考一下开方,对于每个数,大概执行555次开方操作就
2020-10-21 19:51:37
170
原创 第二节.正则表达式
正则表达式正则表达式概念基本概念及操作基本概念基本操作归纳定义正则表达式的代数定律相等定义代数定律正则表达式的拓展正则表达式概念基本概念及操作基本概念一个正则表达式描述了一个定义在某个字母表Σ\SigmaΣ上的字符串的集合+一个描述空串的ϵ\epsilonϵ。字符串的这种集合称为一种语言。基本操作选择:两个字符串集合RRR和SSS的并集,记R∣SR|SR∣S,{x∣x∈R或x∈S}\{x|x \in R 或 x \in S\}{x∣x∈R或x∈S}连接:记RSRSRS,包含前面集合的任一元素
2020-10-21 10:49:37
252
原创 Legacy(线段树优化建图)
Legacy题意数据范围思路代码题意给定nnn个点,现在有333种连边操作。第一种,点uuu向点vvv连一条长度为www的边。第二种,点uuu向[l,r][l,r][l,r]区间内的所有点连一条长度为www的边。第三种,[l,r][l,r][l,r]区间内的所有点向点uuu连一条长度为www的边。现在给定qqq个操作,问这些操作过后,起点到其他点最短距离为多少。数据范围1≤n,q≤1000001 \leq n,q \leq 1000001≤n,q≤1000001≤v,u,l,r≤n1 \l
2020-10-17 09:44:29
299
原创 动态开点线段树
动态开点线段树应用场景代码模板(区间求和为例)应用场景对于数据量比较大的题目,为了降低空间复杂度,可以不用建出整颗线段树的结构,而是在最初只建立一个根节点,代表整个区间。当需要访问线段树的某棵子树(某个子区间)时,再建立代表这个子区间的节点。采用这种方法维护的线段树称为动态开点的线段树。代码模板(区间求和为例)#include <iostream>#include <cstdio>#include <cstring>#include <algorith
2020-10-17 00:35:15
488
原创 慢慢变小的序列(线段树)
慢慢变小的序列题意数据范围思路代码题意给一个长度为nnn的序列A1,A2,…AnA_1,A_2,\dots A_nA1,A2,…An,你需要支持以下两种操作:操作1:L R X Y,对所有的L≤n≤RL \leq n \leq RL≤n≤R赋值Ai=min(Ai,(i−L)∗Y+X)A_i = min(A_i, (i - L) * Y + X)Ai=min(Ai,(i−L)∗Y+X)。其中L,R,X,Y均为整数,且有 1≤L≤R≤n1\leq L \leq R\leq n1≤L≤R≤n,∣X
2020-10-16 10:28:13
255
1
原创 第一节.编译器介绍
编译器介绍编译器概述什么是编译器编译器的核心功能编译器与解释器编译器简史编译器结构编译器的高层结构抽象的多个阶段一种没有优化的编译器结构更复杂的一种编译器结构小结编译器例子示例小结编译器概述什么是编译器编译器是一个程序核心功能是把源代码翻译成目标代码编译器的核心功能源代码经过编译器的静态计算环节转换成了目标程序,然后目标程序经过计算机的动态计算得到计算结果注意:源代码与目标程序需要保证语义相同。编译器与解释器解释器也是处理程序的一种程序编译器的输出一般是可执行程序,解释器输出一般是
2020-10-12 16:35:16
454
原创 Python-字符串
Python-字符串基本操作分片字符串修改各种内置方法casefold()count()find()及index()join()方法基本操作分片字符串支持分片操作,例如:str1 = "I love fishC.com!"str1[:6]结果为:“I love”字符串修改字符串类似于元组,不能进行修改,所以只能间接操作。例如:str1 = str1[:6] + " pbc and" + str1[6:]str1返回结果为:‘I love pbc and fishC.com!’注意
2020-10-10 23:58:04
865
原创 Returning Home(建图、最短路)
Returning Home题意数据范围思路代码题意给定一个n∗nn*nn∗n的网格,在这个网格中给出两个坐标,分别作为起点和终点。并且在图中存在mmm个传送阵,传送阵的坐标已知。从起点开始向终点走,相邻两个位置之间花费一个单位,如果走到与某个传送阵同行或者同列,那么可以不耗花费的传送到那个传送阵的位置。问从起点到终点,最少花费多少单位。数据范围1≤n≤1091 \leq n \leq 10^91≤n≤1090≤m≤1050 \leq m \leq 10^50≤m≤105思路如果传送阵直接建一
2020-10-10 19:17:56
2130
原创 Python-元组
元组元组出现的原因创建和访问一个元组元组创建元组访问切片修改元组的标志更新和删除元组元组出现的原因因为列表过分灵活多变,所以出现了元组。元组和列表最大的区别就是可以任意修改列表中的元素,可以任意插入或者删除一个元素,而对元组是不行的,元组是不可改变的(像字符串一样)。创建和访问一个元组元组创建tuple = (1,2,3,4,5,6,7,8)元组访问元组访问与列表访问类似。tuple = (1,2,3,4,5,6,7,8)print(tuple[1])print(tuple[5:])
2020-10-09 23:33:09
260
原创 Python-列表
列表、元组和字符串列表创建列表普通列表元素多类型列表空列表向列表中添加元素append()方法extend()方法insert()方法从列表中获取元素获取元素交换元素的简便方法从列表删除元素remove()方法del语句pop()方法列表分片朴素版分片进阶版分片列表创建列表普通列表number = [1,2,3,4,5]元素多类型列表mix = [1,'pbc',1.414,[1,2,3]]空列表empty = []向列表中添加元素append()方法append()方法可以向列
2020-10-09 18:03:16
217
原创 Graph(异或生成树)
Graph题意思路代码题意给定一棵无根树,每条边都有边权。允许删边和增边,但是需要保证图联通并且出现的任何一个环的异或和为000。求最小生成树。思路看到异或和,可以联想到异或生成树。考虑在点uuu和点vvv之间连一条边,这条边的边权要保证环上边权异或和为000。假设uuu和vvv的lca为rtrtrt,那么我们可以将环分成三部分:从uuu到rtrtrt,从vvv到rtrtrt以及新连的边。更进一步,我们可以将uuu到rtrtrt拓展到uuu到根节点,从vvv到rtrtrt拓展到vvv到根节点。显然,
2020-10-08 23:59:29
207
原创 Python-分支和循环
分支和循环小练习题目参考代码条件表达式概念源代码三元操作符语法条件表达式改进代码断言for循环语句range()语法break语句用途例子continue语句用途例子小练习题目按照100100100分制,909090分以上成绩为AAA,80∼9080 \sim 9080∼90为BBB,60∼8060 \sim 8060∼80为CCC,606060以下为DDD。现在要求写一个程序,当用户输入分数,自动转换为A、B、C、DA、B、C、DA、B、C、D的形式打印。参考代码score = int(inpu
2020-10-08 22:12:59
107
原创 Python-基础知识
基础知识变量字符串原始字符串长字符串条件与循环简单数据类型整型浮点型布尔类型类型转换获得关于类型的信息常用操作符算术操作符运算顺序比较操作符逻辑操作符变量在使用变量之前,需要对其先赋值。例:myname = 'pbc'myfriendname = 'hl'ourname = myname + myfriendnameprint(ourname)该例子输出结果为pbchl字符串转义符号:例:string = 'Let\'s go'print(string)该例子输出结果为Let
2020-10-08 16:04:31
88
原创 最小生成树性质
最小生成树性质基本概念生成树定义树的性质最小生成树相关性质最小边原则唯一性定理基本概念生成树定义在一个∣V∣|V|∣V∣个点的无向连通图中,取其中∣V∣−1|V|-1∣V∣−1条边,并连接所有的顶点,所得到的子图称为原图的一棵生成树。树的性质树是图的一种特殊形态。图GGG是树当且仅当以下任意一个条件成立:GGG有∣V∣−1|V|-1∣V∣−1条边,无环GGG有∣V∣−1|V|-1∣V∣−1条边,连通任意两点之间只有唯一的简单路径GGG连通,但任意删除一条边后就不连通最小生成树在一个
2020-10-08 09:51:08
676
原创 二分图的覆盖与独立集
二分图的覆盖与独立集最小点覆盖概念定理最大独立集概念定理有向无环图的最小路径点覆盖概念定理最小路径可重复点覆盖概念定理最小点覆盖概念给定一个二分图,求出一个最小的点集SSS,使得图中任意一条边都有至少一个端点属于SSS。这个问题被称为二分图的最小点覆盖,简称最小覆盖。定理二分图最小点覆盖包含的点数等于二分图最大匹配包含的边数。最大独立集概念图的独立集就是任意两点之间都没有边相连的点集。包含点数最多的一个就是图的最大独立集。任意两点之间都有一条边相连的子图被称为无向图的团。点数最多的团被称为
2020-10-05 23:46:06
215
原创 Perfect Flush(单调栈)
Perfect Flush题意数据范围思路代码题意给定nnn和kkk,并且给出长度为nnn的数字序列,序列中的每个数字都不超过kkk。求子序列中字典序最小的kkk排列。数据范围1≤n,k≤2000001 \leq n,k \leq 2000001≤n,k≤200000思路用单调栈维护序列。首先开一个lastlastlast数组记录每一个数字出现了多少次,然后扫描序列,如果当前数字比栈顶元素小,并且栈顶元素在后面还会出现,那么弹出栈顶元素,再把当前数字压栈。最后输出栈中元素即可。代码#incl
2020-10-04 11:06:07
280
2
原创 Radio Prize(换根dp)
Radio Prize题意数据范围思路代码题意给定一棵无根树,树上每个节点有点权tit_iti,两点之间有边权wiw_iwi。定义从uuu到vvv的距离du,vd_{u,v}du,v为从uuu到vvv路径的边权和,花费为(tu+tv)∗du,v(t_u + t_v) * d_{u,v}(tu+tv)∗du,v。对每个点,都要求出到其他点花费的总和。数据范围1≤n≤1000001 \leq n \leq 1000001≤n≤100000思路首先先把花费的式子拆开,即pu,v=(tu+t
2020-10-04 10:42:49
207
原创 Almost Acyclic Graph(拓扑排序,思维)
Almost Acyclic Graph题意数据范围思路代码题意给定一个有向图,问能否只删去一条边,使得图中不存在环。数据范围2≤n≤5002 \leq n \leq 5002≤n≤5001≤m≤1000001 \leq m \leq 1000001≤m≤100000思路这道题的思路比较新颖,需要积累一下。如果我们遍历每一条边,然后再判断删去这条边,能不能使得图中不存在环,显然会超时。这个时候,我们就可以换一个角度来考虑。如果遍历每个点,让其入度−1-1−1,这就相当于消除了指向它的那条边的
2020-10-03 10:37:34
164
转载 分层图最短路学习笔记
分层图最短路一、分层图用分层图的几种情况二、经典例题例1. 小雨坐地铁例2. 飞行路线一、分层图分层图是指有很多个平行的图,各个平行的图之间有特殊的连接边。用分层图的几种情况有kkk个不同集合的边,将每个集合内的边建成一张图,再建立第k+1k+1k+1个图,是一个虚层,用这个虚层将这kkk张图连接起来。每次可以通过虚层转移到另一个集合的图中。有kkk个机会使得走当前此边不花费代价或花费特殊的代价,可以建立kkk张相同的该图,每张图之间用有边的点连接起来,其代价是000或是特殊的值。每向下走一层,
2020-10-02 11:08:47
259
原创 数据库习题1
数据库习题11、问题: 通过Web界面访问在线服务时,动态页面一般都是使用数据库中的数据生成。答案: 正确2、问题: 数据模型是数据结构和语义的概括,比如有( )等等。A. 层次模型 B. 关系模型 C. 实体-联系模型(E-R模型)D. 以上三个都对答案: D3、问题: 应用程序员一般按照( )模式访问数据库中的数据。A. 内 B. 外 C. 逻辑 D. 物理答案: B4、问题: 保护管理模块以一种称为“事务”的方式,维护多用户并发访问及故障情况下的数据一致性。答案:
2020-10-01 23:50:21
696
原创 数据库1(绪论)
绪论什么是数据库系统数据库DBMSDBS总结为什么需要数据库系统数据抽象四层抽象数据抽象的表达三层模式和两级映射三层模式两级映射DBMS数据定义语言数据操作语言数据保护语言物理数据结构数据库管理系统包括三大模块什么是数据库系统数据库数据库定义:包含了关于某方面信息的互相关联的数据集合。DBMS数据库管理系统(DBMS):数据库可以科学地组织和存储数据、高效地获取和维护数据,从而提供一个可以方便、安全地存取信息的环境,将这类专门的、通用的软件称为DBMS。DBMS是位于用户与操作系统之间的一
2020-10-01 23:04:24
90
原创 Number of Subsequences(线性dp)
Number of Subsequences题意数据范围思路代码题意给定一个只包含a,b,c,?a,b,c,?a,b,c,?四种字符的字符串SSS,其中"?“可以被替换成”a,b,ca,b,ca,b,c"。这样总共有3k3^k3k个字符串,其中kkk为"?“的个数。问在所有字符串中,子序列”abcabcabc"的个数。数据范围1≤∣S∣≤2000001 \leq |S| \leq 2000001≤∣S∣≤200000思路定义f(i,0/1/2/3)f(i,0/1/2/3)f(i,0/1/2/3)
2020-10-01 11:01:36
460
原创 Rock, Paper, Scissors(思维)
Rock, Paper, Scissors题意:思路代码题意:两个人玩石头剪刀布游戏,第一个人可以出a1a_1a1个石头,a2a_2a2个剪刀,a3a_3a3个布;第二个人可以出b1b_1b1个石头,b2b_2b2个剪刀,b3b_3b3个布。其中,a1+a2+a3=b1+b2+b3=na_1 + a_2 + a_3 = b_1 + b_2 + b_3 = na1+a2+a3=b1+b2+b3=n。问第一个人最少赢多少次,最多赢多少次。思路最多赢多少次,比较容易想。这种情况就是
2020-09-30 14:34:58
1109
原创 Non-zero Segments(思维)
Non-zero Segments题意数据范围思路代码题意给定一个序列,可以在任意相邻对中添加任意大小的数使得不存在一个子序列的和为000,求最小添加次数。数据范围2≤n≤2000002 \leq n \leq 2000002≤n≤200000−109≤ai≤109-10^9 \leq a_i \leq 10^9−109≤ai≤109思路这道题的处理技巧比较容易想到,但是真正应该如何去做还是有些难度的。首先考虑怎样判断是否存在一个子序列的和为000?这时我们可以求前缀和,如果前缀和数组中有
2020-09-30 11:00:20
457
1
原创 关键结点(最短路+割点+建图)
关键结点题意数据范围思路代码题意一个含有nnn个结点mmm条边的无向有权图,判断每个结点是否在111到nnn的最短路径上。如果该结点不可能出现在从111到nnn的最短路径上,输出000。如果该结点出现在所有从111到nnn的最短路径上,输出111。如果该结点出现在部分从111到nnn的最短路径上,输出222。数据范围1≤T≤10001 \leq T \leq 10001≤T≤10002≤n≤10002 \leq n \leq 10002≤n≤1000n−1≤m≤2∗105n - 1 \le
2020-09-28 16:26:24
221
原创 一个简单的整数问题2(分块做法)
一个简单的整数问题2题意分块时间复杂度代码题意维护一个序列,支持两种操作给一个区间的所有数加ddd查询一个区间所有数的和分块将一个序列分成n\sqrt nn块,每块有n\sqrt nn个元素。用两个数组add、sum分别存储每一块需要加的数以及区间和(加之后)。所有数加ddd操作,对于整块,sumi+=len∗d,addi+=dsum_i += len * d, add_i += dsumi+=len∗d,addi+=d。对于块内的区间,遍历每个数,wi+=d,sumget(i)+
2020-09-25 16:57:23
141
原创 Wireless Network(并查集)
Wireless Network题意数据范围思路代码题意有nnn个通信站,给定它们的位置。但是它们已经坏掉了,需要对它们进行维修。只有两个通信站都是好的,并且它们之间的距离不超过ddd,才能互相通信。两个通信站可以通过第三个通信站间接通信。现在给定两个操作,第一个操作是维护某一个通信站,第二个操作是查询两个通信站能不能通信。数据范围1≤n≤10001 \leq n \leq 10001≤n≤1000思路把能互相通信的通信站看做是一个个小团体,因此可以用并查集来做。需要提前预处理一个visvisv
2020-09-19 15:05:29
215
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人