数论
LowestJN
强省弱OIer
展开
-
[BZOJ2186][Sdoi2008]沙拉公主的困惑
题意求n!n!中与m!m!互素的数的个数。这是我刚学逆元打的第一道题,当然是看别人的题解后打的……Ans=ϕ(m!)∗n!/m!%pAns=\phi(m!)*n!/m!\% p ∵ϕ(m!)=m!∏(pi−1)/pi%p\because\phi(m!)=m!\prod{(pi-1)/pi}\% p ∴Ans=n!∏(pi−1)/pi%p\therefore Ans=n!\prod{(pi-1)/原创 2016-12-14 20:09:51 · 493 阅读 · 0 评论 -
[数论 拓展欧拉定理] BalkanOI 2016. Power-towers
题目大概是求这个东西模 mm由拓展欧拉定理ab≡⎧⎩⎨⎪⎪ab%ϕ(p) gcd(a,p)=1ab gcd(a,p)≠1,b<ϕ(p)ab%ϕ(p)+ϕ(p) gcd(a,p)≠1,b≥ϕ(p) (modp)a^b\equiv \begin{cases}a^{b\%\phi(p)}~~~~~~~~~~~gcd(a,p)=1\\a^b~原创 2017-10-31 11:41:03 · 447 阅读 · 0 评论 -
[数论] Codeforces 516E. Drazil and His Happy Friends
一个点 ii 在 TT 时刻变成特殊点,那么点 (i+N)%M(i+N)\%M 会在 T+NT+N 时刻变成特殊点 (N和M可以互换) 这样也是分成了 gcd(N,M)gcd(N,M) 个环,可以证明,每个点与它在环中的下一个点之间的点都是由它覆盖的。 每个环单独处理就可以了。#include <cstdio>#include <iostream>#include <algorithm>#原创 2017-09-02 09:16:40 · 617 阅读 · 0 评论 -
[数论] Codeforces819D. Mister B and Astronomers
另 S=∑aiS=\sum a_i 一个人能看到第 ii 个星星,那么他在下一个轮回能看到 (i+S)%T (i+S)\%T 星星。 这样的话就可以把 TT 个星星,分成 gcd(S,T)gcd(S,T)个环,每个环大小为 Tgcd(S,T)T\over gcd(S,T),每个人就在一个环上,那么这个人与他在环上下一个人之间的星星都是他可见的。每个环单独出来就可以了。#include <cstd原创 2017-09-02 09:10:05 · 425 阅读 · 0 评论 -
[数论 && 二次剩余 && BSGS] Codechef FN. FIBNACCI NUMBER
给个传送门 听vectorxj大神讲过二次剩余这题的第一反应就是求出5的二次剩余,看看能不能解方程。 设x=5√x=\sqrt 5,y=1+x2y={1+x\over 2}那么1x(yn−(1−y)n)≡C(modP){1\over x}(y^n-{({1\over -y})^n})\equiv C(\mod P)分类讨论一下n的就行,那么解一下一元二次方程就能求出 yny^n然后一直没想到有B原创 2017-09-06 21:04:47 · 580 阅读 · 0 评论 -
[数论 反演]BZOJ4816 [Sdoi2017]数字表格
推一推 答案是∏T(∏d|Tfμ(Td)d)⌊nT⌋⌊mT⌋\prod_T(\prod_{d|T}f_d^{\mu({T\over d})})^{\lfloor{n\over T}\rfloor\lfloor{m\over T}\rfloor}O(nlnn)O(n\ln n)筛一下括号里的东西,分块搞include <cstdio>#include <iostream>#include <al原创 2017-09-06 20:55:48 · 442 阅读 · 0 评论 -
[数论 反演 && 莫队] hdu4676 . Sum Of Gcd
假设我们知道一个区间内数字 ii 是否出现,另它为 bib_i 推一推 ∑i=1n∑j=1ngcd(i,j)×bi×bj\sum_{i=1}^{n}\sum_{j=1}^ngcd(i,j)\times b_i\times b_j=∑Tf(T)(∑T|ibi)2=\sum_Tf(T)(\sum_{T|i}b_i)^2其中f(T)=∑d|Td×μ(Td)f(T)=\sum_{d|T}d\times原创 2017-09-06 20:50:14 · 552 阅读 · 0 评论 -
[数论 斐波那契] 51nod1355. 斐波那契的最小公倍数
进入斐波那契领域的第一题… 不要脸地截图了Manchery的博客……原文在这里#include <cstdio>#include <iostream>#include <algorithm>using namespace std;const int N=1000010,P=1e9+7;int n,x,ans=1,f[N],vis[N],g[N];int gcd(int x,int y){原创 2017-09-03 21:38:13 · 536 阅读 · 1 评论 -
[数论 反演] HDU6053. TrickGCD
可以先容斥一下,用所有方案减去gcd为1的方案 那么只要能求gcd为1的方案就可以了 推一下式子 ∑i1=1a1∑i2=1a2∑i3=1a3…∑in=1an[gcd(i1,i2,i3,..,in)=1]\sum_{i_1=1}^{a_1}\sum_{i_2=1}^{a_2}\sum_{i_3=1}^{a_3}…\sum_{i_n=1}^{a_n}[ \gcd(i_1,i_2,i_3,..,i_原创 2017-07-28 12:09:51 · 466 阅读 · 0 评论 -
[51nod 1258] [伯努利数] [多项式求逆] [任意模数NTT] 序列求和 V4
接http://blog.csdn.net/coldef/article/details/57908865上次做一套模拟赛的时候,其中需要求自然数k次幂和,然后我只会n^2的…我记得n^2有20分,nlogn求可以爆到90分…… ——鏼鏼鏼2015年国家集训队论文大概就这样多项式求个逆,求出生成函数就可以了 这样是O(nlogn)O(n\log n),但这道题模数不是满足NTT要求的素数……原创 2017-06-06 11:54:30 · 2258 阅读 · 0 评论 -
[BZOJ3944]SUM 杜教筛
题意求∑ni=1μ(i)\sum_{i=1}^{n}\mu(i)和∑ni=1ϕ(i)\sum_{i=1}^{n}\phi(i)1. ∑ni=1∑d|iμ(i)=1=∑ni=1∑⌊ni⌋j=1μ(j)\sum_{i=1}^{n}\sum_{d|i}\mu(i)=1=\sum_{i=1}^{n}\sum_{j=1}^{\lfloor\dfrac{n}{i}\rfloor}\mu(j)1=∑ni=1Sμ原创 2017-01-24 15:44:02 · 810 阅读 · 0 评论 -
[HDU5942] Just a Math Problem
题意求∑ni=1g(i),g(i)=2f(k),f(k)\sum_{i=1}^{n}g(i),g(i)=2^{f(k)},f(k)为kk的不同质因子个数。Ans=∑ni=12f(k)Ans=\sum_{i=1}^n 2^{f(k)} =∑ni=1∑k|iμ2(k)~~~~~~~=\sum_{i=1}^n\sum_{k|i}\mu^2(k) =∑ni=1μ2(i)⌊ni2⌋~~原创 2017-01-21 10:57:49 · 877 阅读 · 0 评论 -
[BZOJ1965][Ahoi2005]SHUFFLE 洗牌
题意一堆n张牌的牌堆,每次洗牌后编号为xx的牌会在第2x%(n+1)2x\%(n+1)的位置,求mm次洗牌后第LL张牌的初始编号。可列出方程 x∗2m≡L(mod n+1)~~~~x*2^m\equiv L(mod~n+1) ∴ x∗2m+(n+1)y=L\therefore~x*2^m+(n+1)y=L可以用拓展欧几里得解。#include <cstdio>#define ll lo原创 2016-12-15 18:35:14 · 629 阅读 · 0 评论 -
[反演] Project Euler 608. Divisor Sums
D(m,n)=∑d|m∑k=1nσ0(kd)" role="presentation">D(m,n)=∑d|m∑k=1nσ0(kd)D(m,n)=∑d|m∑k=1nσ0(kd)D(m,n)=\displaystyle\sum_{d|m}\sum_{k=1}^n\sigma_{\small 0}(kd)求 D(200!,1012)" role="pres原创 2018-01-29 07:47:32 · 424 阅读 · 0 评论