质因数分解
二分抄代码
去了18ec没资格去19ec的反向训练选手
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
codeforces1493D. GCD of an Array
https://codeforces.com/contest/1493/problem/D 被现场一车人过掉的题卡了一万年,一开始直接线段树合并质因数求gcd nlog^3n 超时了 后来发现我们关心的质因数事实上很少,必须要每个数字都有才行 那么用s[num]这个set维护每个数字num这个因数有多少次幂,s[num].size()=n时,才会被加到答案里 用sa[i]维护i这个数字的所有质因数和幂数 每次添加就相当于log次修改sa[i]和s[num],所以,总复杂度是O(nlog^2n)原创 2021-04-08 01:48:14 · 242 阅读 · 0 评论 -
agc003_d Anticube
https://atcoder.jp/contests/agc003/tasks/agc003_d 这题关键之处是想到3次方对应的3次方是唯一的,也就是说吧一个数质因数分解以后,吧每个因数的幂次都%3然后得到一个新数,那么这个新数只会和另一个确定的新数乘起来是三次幂 然后x^3<=10^20,x<=10^(20/3),那么对于每个数我们只要暴力枚举10^(10/3)内的质数就行了,筛完以后如果还剩,对于10^(10/3)到1e5中的质数,要么是x^2,要么是x,那么只要sqrt一下看是不是平原创 2020-11-10 23:31:17 · 190 阅读 · 0 评论 -
E Groundhog Chasing Death 2020牛客暑期多校训练营第九场
https://ac.nowcoder.com/acm/contest/5674/E 考虑x和y的每个共有的质因子在答案中的幂次q,ans*=p[k]^q r[k]为p[k]在x中的幂次,s[k]为p[k]在y中的幂次 枚举i=a->b,然后i*r[k]<j*s[k],那么gcd中关于p[k]的幂次就是i*r[k],反之就是j*s[k] 由于q可能很大,注意幂次是要%phi(mod)也就是%(mod-1) 注意特判当x=mod,y=mod的情况 #include<bits/s原创 2020-08-08 17:05:06 · 212 阅读 · 0 评论 -
codeforces1349A Orac and LCM
https://codeforces.com/problemset/problem/1349/A 线性筛处理每个数的最小质因子,然后nlogn分解,找到那些每对数字都有的约数,由于lcm本质就是对两个数的每一个质因子的幂取max,所以对于某个质因子p[i]考虑,所有两者相乘的结果的gcd就是第二小的幂次,因为最小幂次和第二小幂次的数字的lcm是第二小幂次数。 想了20分钟,感觉对质因数的题反应不是很快了,做的题少了 #include<bits/stdc++.h> using namesp原创 2020-05-13 01:08:25 · 444 阅读 · 2 评论 -
codeforces1295D Same GCDs
https://codeforces.com/contest/1295/problem/D 比赛的时候这题做了好久,没时间做E了。 据说答案是phi(m/gcd(a,m)),感觉是那么回事但是没想得很清楚,留下了不会数学的泪水.jpg,蒟蒻只会容斥,还纠结了半天才过。 我们令d=gcd(a,m),在a到a+m-1之间的一个数字b要是gcd(b,m)=d,一定是d的倍数才行,所以说最多(a+m...原创 2020-02-05 23:21:51 · 201 阅读 · 0 评论 -
codeforces1285C Fadi and LCM
http://codeforces.com/problemset/problem/1285/C 水题想一年,学弟7分钟就过了。 a*b/gcd(a,b)=X,已知X,要求max(a,b)最小,我们可以贪心地想到gcd(a,b)=1比较好,这样max(a,b)小一些 于是我们知道把X质因数分解,把不同质因子一部分给a,一部分给b,使得max(a,b)最小 结果我一开始贪心去了。。。。但是贪心...原创 2020-01-11 09:23:59 · 380 阅读 · 0 评论 -
FZU 2297
这题新人队2小时就A了,然后我队中期这题根本不知道怎么办,全机房都会做,于是ljn开始写mod质因数分解一蛤,mod的质因数单独拿出来算,mod<1e9所以最多30个不同的因数,因为2^30>1e9,然后对每一个mod的因数开个mp[j]存数字,cnt[j]存mp[j]在答案中的幂次,对于每一个乘起来的数a[i]我们都把里面mod的质因数给剔到cnt[j]中,然后不是mod的因数就与m...原创 2018-08-24 20:11:05 · 273 阅读 · 0 评论 -
Gym 101981J 2018南京
现场赛的时候qt一下就过了这题。。。 然后今年我想了挺久的。。。计数还是太菜了 我们对于每一个质数考虑,看有多少个区间,这个质数是存在的。 那么其实就是所有的区间数量减去没有这个质数区间的数量 对于一段连续的没有这个质数的区间长度为len,那么这一段中没有这个质数的区间的数量为len*(len+1)/2. 先线性筛素数,记录最小质因子,那么我们对每一个ai进行nlogn的质因数分解,分解...原创 2019-04-14 22:48:26 · 454 阅读 · 0 评论
分享