- 博客(8)
- 收藏
- 关注
原创 AtCoder Beginner Contest 274 C ameba
在递归搜索的过程中,如果某个分支我们已经搜过了,那么就再开一个数组,记下这个分支的答案,下次搜索过程中再次遇到这个分支,就直接调用这个节点对应的数组返回答案。给定数组Ai,每一个Ai会分裂成两个阿米巴原虫,分裂而成的子代记为2i 和 2i +1。,不断的往下搜,往下搜的过程中如果下一层也没有储存过答案,重复。开一个tree数组,他的下标表示i个阿米巴原虫,求第i个阿米巴原虫和第1个阿米巴原虫隔了多少代。表示他的亲代,然后看。存过,那么就直接返回。
2022-10-27 22:32:00
340
原创 关于欧拉筛的几个细节
故i % prime[j] == 0 时, prime[j]为它的最小质因子,prime[j] * i 的最小质因子也是prime[j]i%prime[j]!= 0时, prime[j] 小于 i的最小质因子,prime[j]*i的最小质因子仍是prime[j]我们想要筛掉x , x为i*prime[j] , 而遍历到i时,这个prime[j]还没有存进数组的情况.2.为什么能保证每次筛的合数x都是i*x的最小质因子。因为prime[j]是从小到大枚举的。
2022-10-23 10:00:45
231
原创 Codeforces Round #828 (Div. 3) E2 Divisible Numbers (hard version)
数据量更大了,如果我们遍历区间【a,c】,找出每一个x,再根据x去匹配y的思路就会t。故 最坏情况下O(sqrt(a)+ sqrt(b) + 1344*1344 )首先使开数组存a和b的因子: O(sqrt(a)+ sqrt(b))接着遍历因子,a最大可到达1e9,通过科技手段()可得知1344为a最坏情况下的所有因子数。tl : 4s , 故不会t。
2022-10-21 18:03:14
228
原创 Codeforces Round #828 (Div. 3) E1 Divisible Numbers (easy version)
从题目条件出发,tl给4s,a,b,c,d小于1e5,将区间[a,c]遍历不会T,暴力搜索x可行,但套两层循环暴力搜索x与y会T,故要根据x找出y。将x*y % a*b == 0条件进行拆解,由数论基本定理: A%B==0 , 那么A的质因子集合包含B的质因子集合。则我们只需要找出[b,d]中所有符合条件的y的最小值,使k*m恰好大于b即可,判断k*m
2022-10-21 16:46:36
178
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人