- 博客(18)
- 收藏
- 关注
原创 P7710 [Ynoi2077] stdmxeypz 题解
题目传送门题面中有取模,题面中有取模,题面中有取模!直接上根号分治。由于题面中是对子树查询,考虑把子树拍到 dfs 序上的区间做。而点 aaa 子树中的一个点 bbb 到 aaa 距离对 xxx 取模等于 yyy,可以表示成 depb−depa≡y(modx)dep_b-dep_a\equiv y\pmod xdepb−depa≡y(modx),等价于 depb≡y+depa(modx)dep_b\equiv y+dep_a\pmod xdepb≡y+depa(modx)。当模数小于 n\sqrt
2024-02-14 19:51:37
827
1
原创 SP5652 PATULJCI - Snow White and the N dwarfs 题解
首先,我们用 vector 记录每种颜色在那些位置出现过,每次在区间里随机一个位置,看这个位置对应的颜色在此区间内是否出现大于长度除以二。后来想了想,确实能对。这种算法会错当且仅当存在答案但没随机到。如果存在答案,那么随机一次没随机到的概率就是。什么,你说你瞧不起没有正确性保证的算法?那你以后就不要用哈希了!众所周知,当拿到一道题但是不会做的时候,可以考虑随机化。只要不是运气极差,就能轻松 AC。次都没随机到的概率是。次,一交,竟然对了!
2024-01-25 10:23:49
948
原创 CF825G Tree Queries 题解
注意到新加入的点可以和任何一个点进行答案统计,直接钦定这个点为第一个被染色的点,然后以这个点为根节点建树。可以发现,新加入的点到任何一个点的最短路径上的点肯定可以更新答案。第一种操作就是把点真的加进来,第二种操作就不是真的加入点集。即:设操作前的答案为。把问题拆成两部分,一部分是已染色的点之间的最小点权,另一部分是询问的点。考虑加进来一个点对答案的贡献。这个东西可以直接用倍增解决,只需要注意空间,到根节点的最小点权。,如果是第一种操作,就更新答案。到已染色的点的最小点权。但还有一种更巧妙的方法。
2024-01-19 16:34:48
530
1
原创 P8769 [蓝桥杯 2021 国 C] 巧克力 题解
会发现,正着做容易出现一些问题。如果有一个巧克力快到保质期但不是最优的,而最优的巧克力只剩一个,另外的巧克力价格非常高,最优解肯定是要选这个快到保质期的巧克力。但是,倒着做可以完美的避开这种问题,因为最优的巧克力已经在后面被用了,快到保质期的巧克力就会被选上。很明显,这是一道贪心题。用堆维护巧克力,把价格低的巧克力放在堆顶,同等价格,保质期低的放在堆顶。
2024-01-18 21:38:11
566
1
原创 AT_arc023_4 [ARC023D] GCD区間 题解
最后,把二分出的长度加入对应的最大公约数的贡献(具体可以用 map),输出即可。为起点的区间,每一次找一段最大公约数相同的区间,这样的区间最多。求出任意一段区间的最大公约数,然后二分这段区间的长度即可。如何去找一段最大公约数相同的区间呢?考虑用 ST 表,这样就能。中的一个,要么小于等于。众所周知,对于两个数。所以,我们去维护每个。
2024-01-17 15:22:05
487
原创 SP12007 FRS2 - Fibonaccibonacci (easy) 题解
众所周知,斐波那契数列在模意义下是有周期的,我们设在模。这个式子是可以用矩乘的,不会矩乘求斐波那契的。直接上线性递推式求周期!
2024-01-15 15:07:47
358
原创 重链剖分学习笔记
重链剖分是一种用于解决树上的路径查询和修改问题的算法,他能将O(n)级别的操作转换为O(log n)的级别,可以说十分常用。本文将带你深入解析这个算法。码字不易,给个赞吧!
2024-01-14 23:20:13
2333
2
原创 P9840 [ICPC2021 Nanjing R] Oops, It‘s Yesterday Twice More 题解
很明显,按照上述的移动方式,从一个点到另一个点的步数就是他们的曼哈顿距离。的网格图,每个格子上都有一只袋鼠。那么,我们先要把袋鼠移到一个角上,即移动到。请输出一种使得所有袋鼠最终都在。的操作序列,并且序列的长度小于等于。将袋鼠移到任何一个角上都需要。那如何保证移到步数小于等于。总步数就一定小于等于。每次按下按钮,都会对。
2024-01-12 15:49:02
426
1
原创 CF889E Mod Mod Mod 题解
数组,再继续优化空间,用滚动数组的思想。由于值域比较大,所以直接开个 map 来维护。中肯定是存在最优解的。
2024-01-11 09:33:10
934
原创 CF1744F MEX vs MED 题解
记录区间最小左端点。的排列,所以这个区间必须包含。由于这个区间已经包含了。给定一个数列,求满足。记录区间最大左端点,
2024-01-10 14:49:57
967
原创 P5060 旅行 题解
跑一遍 Dijkstra 即可。的倍数,这是一个非常经典的分层图题。对于原图中的每一条边。由于题面中要求最后的便签是。实测堆优化开 O2 才能过。,在分层图上建边时,枚举。
2023-12-19 14:59:12
1005
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人