
素数
Icefox_zhx
这个作者很懒,什么都没留下…
展开
-
luogu1218 [USACO1.5] Superprime Rib(搜索+素数判断)
#include <cstdio>#include <cstring>int n;bool isprime(int x){ if(x==1) return false; for(int i=2;i*i<=x;++i) if(x%i==0) return false; return true;}void dfs(int x,int cnt){原创 2017-08-26 17:44:07 · 299 阅读 · 0 评论 -
luogu4714 「数学」约数个数和(组合数学+miller_rabin判素数)
luogu6月月赛E。 当时绝对是脑抽了 其实O(wK)O(wK)O(wK)的暴力递推还是可以写的呀… 令n=∏pqiin=∏piqin=\prod p_i^{q_i} 我们发现可以分开讨论每一个pqiipiqip_i^{q_i},最后乘起来就好了,且只跟次数q有关 设f[k][q]f[k][q]f[k][q]表示pqpqp^q的k次因数个数。 那么有递推式f[k][q]=∑i=0qf...原创 2018-06-23 17:43:10 · 366 阅读 · 0 评论 -
bzoj4522 [Cqoi2016]密钥破解(pollard-rho大数分解+逆元)
其实就是把大数n分解了,再exgcd求个逆元。#include <bits/stdc++.h>using namespace std;#define ll long long#define inf 0x3f3f3f3f#define ld long double#define eps 1e-8inline char gc(){ static char buf...原创 2018-05-28 23:00:12 · 363 阅读 · 0 评论 -
bzoj5358 [Lydsy1805月赛]口算训练(分解质因数+主席树/二分)
给定一个序列,求[l,r]的数的乘积是不是d的倍数。 我们考虑给d分解质因数,如果对于每个质因数这个区间内的个数都大于它的次数,那么就是d的倍数。而1e5以内的数最多有6个不同的质因数。 我们考虑给每个数分解质因数,维护区间和即可。我写的主席树。 其实也可以直接对于每种质因数记下它每一次出现的位置及个数,然后每次询问时去二分。 复杂度都是O(n(n−−√+6logn))O(n(n+6log...原创 2018-05-27 22:23:12 · 344 阅读 · 0 评论 -
bzoj4891 [Tjoi2017]龙舟(pollard-rho+素数检测)
这题主要问题在于我们要求一个大数对大数的逆元。 我们考虑把大模数分解质因数之后就可以O(mlogV)O(mlogV)的上下约分,然后看分母是否和大模数互质,以判断是否存在逆元。然后这个大数如何质因数分解呢?我们可以用pollard-rho+miller-rabin来做。复杂度O(n1/4)O(n^{1/4}) pollard-rho怎么做呢?大概就是你每次随机若干个数去试,看他们是不是n的因子,原创 2018-04-18 14:48:32 · 506 阅读 · 0 评论 -
bzoj3751【2014提高】解方程(数论+筛法+枚举)
这题强啊。。。蒟蒻弱到去写带负数的高精度了,结果玩挂。 因为数无比的大,所以我们发现给两边都模个数好了hh。为了更准确些,让他们摸个大质数吧!一个正确性还不太够,多模几个吧!于是诞生了正解。读入的时候就顺道都模了,我这里是用了三个质数。然后枚举x,带入,用秦九韶公式计算,判断是否得0.如果模3个质数的情况下均为0,基本可以说他就是得0了(错误的概率极小)。然后这样枚举是O(nm)的,可能会卡常。...原创 2017-10-22 22:58:41 · 327 阅读 · 0 评论 -
CF225E Unsolvable(数论)
z需要满足的条件就是z=2t−1z=2^t-1,且t+1t+1是梅森素数。 梅森素数就是满足2p−12^p-1为素数的素数p。原创 2018-03-10 23:35:12 · 531 阅读 · 0 评论 -
CF512C Fox And Dinner(数学+二分图+最大流)
%%%Elijahqi,秒题的神犇。 首先我们发现,如果两个数的和是质数,则一定是一奇一偶,所以环一定是偶环,我们可以根据奇偶性黑白染色,变成一张二分图。题目保证环的大小一定大于等于3,所以每个点的度一定是2。那么我们就可以直接建图跑最大流来判断是否可行了。S向白点建边,容量为2,黑点向T建边,容量为2,白点向能相邻的黑点建边,容量为1。看是否满流即可。原创 2017-12-23 23:07:41 · 414 阅读 · 0 评论 -
NOIP2009提高组
2009提高 A.潜伏者(模拟) B.Hankson 的趣味题(素数筛+数论+分解质因数) a1,a2的最大公因数为a0,则对于每一个质因子,他在a0中的指数为a1,a2中的最小值,即反过来,如果a1中的指数为x1,a0中的指数为x0,x1>x0,则a2中的指数x2必为x0.如果x1==x0,则x2>=x0.最小公倍数同理。这样我们就能得出每一个质因子的指数的取值范围,根据乘法原理算出答案。考原创 2017-11-16 17:21:30 · 606 阅读 · 0 评论 -
luogu1125【2008提高】笨小猴(素数)
还脑残的WA一发。。。蒻死了。原创 2017-09-01 21:34:18 · 289 阅读 · 0 评论 -
bzoj4197 [Noi2015]寿司晚宴(数学+状压dp)
首先考虑n<=30怎么做,没几个质因子,状压掉 然后n<=100,状压着有点费劲,各种优化,比如*2>n的质因子肯定是贡献3倍答案,*3>n的质因子可以讨论一下也不压进状态里,然后就可以卡过去了 这启发了我们正解的思路!对于大质因子我们一起转移,然后就把这个大质因子这一位扔掉。 我们只需要状压<500−−−√500\sqrt {500}的那么8个质因子就好了。 ...原创 2018-06-25 13:26:42 · 216 阅读 · 0 评论