
数学
hannibal_lecter_
这个作者很懒,什么都没留下…
展开
-
组合数模板
ll fac[maxn],inv[maxn];void Pretreatment(){//预处理 int i; for(fac[0]=1,i=1;i<mod;i++) fac[i]=fac[i-1]*i%mod; for(inv[1]=1,i=2;i<mod;i++) inv[i]=(mod-mod/i)*inv[mod%i]%原创 2018-10-10 21:50:09 · 140 阅读 · 0 评论 -
[欧拉函数][数论]GCD - Extreme (II) UVA - 11426
题目链接题意:求∑i=1n∑j=1igcd(i,j)\displaystyle\sum_{i = 1}^{n}\sum_{j = 1}^{i}gcd(i,j)i=1∑nj=1∑igcd(i,j)思路:对于gcd(x, y)假设我们知道gcd(x,y) = c,我们也可以得到gcd(x/c, y/c) = 1.也就是说x/c与y/c互质。那我们可以枚举枚举一个数(设为n)的所有因子(设...原创 2018-11-07 20:43:06 · 181 阅读 · 0 评论 -
[模板]欧拉函数
欧拉函数表(nlognlogn)int euler[maxn];void geteuler() { euler[1] = 1; for(int i = 2; i < maxn; i++) { if(!euler[i]) for(int j = i; j < maxn; j+=i) { if(!euler[j]) euler[j] = j; e...原创 2018-11-07 19:47:12 · 175 阅读 · 0 评论 -
[模板]中国剩余定理
偷偷放个大佬的教学:中国剩余定理互质的情况ll crt(int n, int *a, int *m){ ll M = 1, d, y, x = 0; for(int i = 1; i <= n; i++) M*=m[i]; for(int i = 1; i <= n; i++) { ll w = M/m[i]; d = exgcd(m[i], w, d, y); ...原创 2018-11-09 18:50:40 · 184 阅读 · 0 评论 -
Gym - 101343A On The Way to Lucky Plaza
题目地址题意:有m个商店,Alaa想买k个巧克力,每个商店只能买一块巧克力,Alaa进每个商店的概率是一样的,问你在买第k个巧克力的时候是在第n家店的概率是多少,然后答案化成分数取模的形式。其实挺简单的,就是坑有点。。。我们可以知道要求的概率为C(n−1,k−1)×C(n-1, k-1)\timesC(n−1,k−1)×p(k−1)p^(k-1)p(k−1)×\times×(1−p)(n−k...原创 2018-11-03 19:09:09 · 242 阅读 · 0 评论 -
扩展gcd模板
void exgcd(ll a, ll b, ll &amp;x, ll &amp;y){ if(b == 0){ x = 1; y = 0; return; } ll x1, y1; exgcd(b, a%b, x1, y1); x = y1; y = x1-(a/b)*y1;}求的是ax+by...原创 2018-11-03 18:19:13 · 203 阅读 · 0 评论 -
[数论]GCD XOR UVA - 12716
题目链接题意:在3e7的范围里有多少对gcd(a, b) = a^b。思路:首先,我们需要知道一些前置知识.1.a^ b = c.a^c = d;2. a^b = c, gcd(a,b) = c, a = k * c, b = k * c;我们可以得到gcd(a, a^c) = c。所以我们可以枚局c的所有倍数,验证gcd(a, a ^ c) == c。这样复杂度是n* log(n)*l...原创 2018-11-06 10:06:57 · 161 阅读 · 0 评论 -
[数论分块] [清华集训2012]模积和
题目地址对于∑i=1n∑j=1m(n%i)∗(m%j)(i!=j)\sum_{i=1}^{n}\sum_{j = 1}^{m}(n\%i)*(m\%j)(i!=j)∑i=1n∑j=1m(n%i)∗(m%j)(i!=j)可以先不管i!=j的条件,所以我们可以算∑i=1n∑j=1m(n%i)∗(m%j)\sum_{i=1}^{n}\sum_{j = 1}^{m}(n\%i)*(m\%j)∑i=...原创 2018-10-30 22:24:09 · 174 阅读 · 0 评论 -
[数论分块]Fear Factoring Gym - 101652P
题目地址题意:定义F(x)为x的所有因子和,现在给你l,r,求∑i=lr\sum_{i=l}^{r}∑i=lrF(i)。把问题转化为求∑i=1r\sum_{i=1}^{r}∑i=1rF(i)–∑i=1l−1\sum_{i=1}^{l-1}∑i=1l−1F(i)。因为当我们列出一个数的所有前缀的因子:eg:F(1) = {1};F(2) = {1, 2};F(3) = {1, 3}...原创 2018-10-30 17:16:44 · 219 阅读 · 0 评论 -
2018上海大都会A Simple Problem with Integers【线段树】
A Simple Problem with Integers如果能发现对每个数多次操作后结果会存在循环节,就可以知道线段树该维护什么了。void init() { for(int i = 1; i < 2018; i++) { int p = i; for(int j = 0; j < 15; j++) { cc[i][j] = p; p = p*p%2018...原创 2019-03-27 20:05:36 · 145 阅读 · 0 评论