![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
AcWing
文章平均质量分 75
逍遥Fau
为伊蕾娜献上心脏!
展开
-
AcWing4202 穿过圆 (树上最短路 / bitset优化暴力)
题目链接: 穿过圆大致题意给定nnn个点, mmm个圆. 保证每个点不会在圆边上, 且圆和圆之间不相交.有kkk次询问, 每次询问连线两个点a,ba, ba,b, 至少需要穿过多少个圆.解题思路思路一: 转化为树上最短路问题我们考虑到由于题目保证圆与圆不相交, 且点不在圆上. 那么如果我设全集为第m+1m+1m+1个圆, 则nnn个点必然都包含在m+1m+1m+1个圆之中.如果我们认为某个点ppp所属圆是: 包含点ppp, 且半径最小的. 则每个点也必然有一个所属圆.我们考虑每次询问两点a原创 2021-12-31 11:07:21 · 159 阅读 · 0 评论 -
AcWing4084 号码牌 (并查集 / bitset优化Floyd)
题目链接: 号码牌大致题意给定一个长度为nnn的序列, 第iii个位置的值为aia_iai. (保证aaa是111~nnn的一个排列)每个位置还有一个值did_idi, 若满足∣i−j=di∣|i-j=d_i|∣i−j=di∣, 表示位置iii和位置jjj可以进行任意次交换.问: 能否使得最终的序列满足ai=ia_i = iai=i.解题思路并查集 (数据太小了, 比赛时写了个Floyd)由于两个位置的交换次数是任意次. 因此, 如果xxx和yyy可以交换, 且yyy和zzz可以交换原创 2021-12-05 10:13:55 · 481 阅读 · 0 评论 -
AcWing3780 构造数组 (思维 单调栈)
题目链接: 构造数组大致题意如题面所述解题思路思维首先我们分析题目中的条件②, 这个条件表明我们最终的序列应当是不存在波谷的, 表明整个序列最多可以存在一个波峰. 若不存在波峰, 则整个序列呈单调递增(减).(也可以认为 第一个/最后一个 位置是波峰)我们可以枚举最大值(波峰)出现的位置. 不妨设最大值位置为pos, 则a[pos] = mpos. 对于[1, pos - 1]区间, 我们可以从右往左递推出ai的值, 使得[1, pos]非递减. 而对于[pos + 1, n]区间, 我们同理可原创 2021-07-25 21:30:30 · 73 阅读 · 0 评论 -
AcWing256 最大异或和 (可持久化01Trie)
题目链接: 最大异或和解题思路重点放在, 在区间[l, r]找到一个位置p, 使得从p位置开始, 异或到序列结束, 再异或上x, 结果最大. 如果这样考虑, 对于每一个位置p, 我都需要算一次区间[p, n]的异或结果. 明显这是很慢的一步操作.优化: 使用前缀和. 由异或的性质, 我们可知 x ^ x == 0, 既然这样, 我们可以对于整个序列求出"前缀和", 记为s数组.这样如果再计算[p, n]的异或结果, 我就可以运用前缀和的性质得到等式 res[p, n] = s[n] ^ s[p -原创 2020-11-05 00:51:39 · 324 阅读 · 0 评论