数论
文章平均质量分 71
数论算法题
张小生的先生
你要觉得我博客还行,就点赞加个关注,有意深聊的可以私信,随时欢迎,当然有女性想深聊的我更欢迎,要是男性的话不建议私聊,我跟一大老爷们真聊不起来。我人品五五开,胆小不好色,对女性要求不高但要识大体,样貌看得过去就行,其它的也就那样了。我不仅把这个当作学习博客也当作一个招友的圣地,希望在这里遇见更好的你。
展开
-
[Codeforces Global Round 14] F. Phoenix and Earthquake (组合数学+打表逆元+dp)
题目链接:F. Phoenix and Earthquake题解我们考虑手动开灯情况,很明显就是一段段连续的1中间最多隔一个0。每个区间内灯被点亮的方案数为2len−1{2^{len-1}}2len−1个,(len为区间长度)。定义:设dp[i][j]:前i个灯有j个手动开,最后一个是手动打开的方案数。{设dp[i]}[j]:前i个灯有j个手动开,最后一个是手动打开的方案数。设dp[i][j]:前i个灯有j个手动开,最后一个是手动打开的方案数。初始化:dp[i][i]=2i−1{dp[i][i]=原创 2021-05-13 10:22:34 · 201 阅读 · 0 评论 -
[牛客练习赛69] D. 火柴排队 多维dp+逆元+递推求排列组合
题目链接:火柴排队题意给你长度为n的序列a,随即使得k个元素增加d,求增加后的序列ai′{a_i'}ai′满足:如果ai<aj,那么ai′<aj′{a_i<a_j,那么a_i'<a_j'}ai<aj,那么ai′<aj′的概率为多少。对于每个1≤K≤n,你要输出每个答案并对998244353取模。题解本题发现n≤5000,并且每个状态都和前一个状态有关系,所以我们可以尝试用dp求解。分析本题,对序列的顺序并无要求,所以可以先对序列排序,这样对一个元素加d原创 2020-09-12 21:36:48 · 188 阅读 · 0 评论 -
[2019 第十届蓝桥杯大赛软件类省赛 C/C++ 大学 A 组] E题 欧拉筛+逆元+快速幂
题意题解要求x,需先求e,要求e需要知道p和q的值是多少。由题可知n=p*q,(p,q为素数),那么易得n的唯一分解就是p和q两个数。首先我们打一个1e8{1e8}1e8以内的素数表,看n的唯一分解的较小的那个质数是否在1e8以内。#include<iostream>#include<algorithm>using namespace std;typedef long long ll;const ll mod=1e9+7;const int maxn=1e8原创 2020-09-02 13:16:23 · 231 阅读 · 1 评论 -
catlan数和超级catlan数(施罗德数)
catlan数前言卡特兰数在组合数里很难告诉它是什么?更多的情况是通过大量的例子来告诉你它怎么用。从0开始catlan数的前几项为:1,1,2,5,14,42,132,429,1430,4862,16796,58786,208012,742900,2674440,9694845,35357670,129644790…定义1. 递归定义fn=f0∗fn−1+f1∗fn−2+f2∗fn−3+.....+fn−2∗f1+fn−1∗f0{f_n=f_0*f_{n-1}+f_1*f_{n-2}+f_2*原创 2020-09-01 12:46:25 · 925 阅读 · 0 评论 -
[牛客] n的约数 唯一分解定理+dfs
题目链接:n的约数题意t次询问,每次给你一个数n,求在[1,n]内约数个数最多的数的约数个数。 (n≤1018{10^{18}}1018)题解我们先来分析这道题,首先我们知道每个数都可以分解成质因数乘积的形式。num=p1k1∗p2k2∗...∗pmkm{num=p1^{k_1}*p_2^{k_2}*...*p_m^{k_m}}num=p1k1∗p2k2∗...∗pmkm (p1,p2....pm{p_1,p_2....p_m}p1,p2....pm为num的质因数)那么很容原创 2020-08-26 17:02:32 · 259 阅读 · 0 评论 -
[2019CCPC-江西省赛] H - Rng 概率+数学推导
题目链接:H - Rng题意给你一个长度为n的1~n区间,我们首先从[1,n]中任意选取一个整数r,然后再从[1,r]中任取一个整数l,构成一个区间[l1,r1]{[l_1,r_1]}[l1,r1],相同的方法构造[l2,r2]{[l_2,r_2]}[l2,r2]。问这两个区间相交的概率为多少,答案为pq{\frac{p}{q}}qp的形式,输出p∗q−1(mod(1e9+7)){p*q^{-1}(mod (1e9+7) )}p∗q−1(mod(1e9+7))。题解首先我们可以知原创 2020-08-25 17:46:43 · 436 阅读 · 1 评论 -
[2019年浙江省省赛] I - Fibonacci in the Pocket 数学
题目链接:I - Fibonacci in the Pocket 题意定义fi=fi−1+fi−2,f1=1,f2=1{f_i=f_{i-1}+f_{i-2},f_1=1,f_2=1}fi=fi−1+fi−2,f1=1,f2=1,给你一个区间[l,r],求∑i=lrfi{\sum_{i=l}^rf_i}∑i=lrfi能否被2整除,如果可以则输出0,否则输出1。题解易知fi{f_i}fi为斐波那契数列,并且通过分析可知,Fibonacci数列的奇偶性以每三个为“奇奇偶”一个循环。中学原创 2020-08-17 12:31:37 · 227 阅读 · 0 评论 -
高斯消元板子
#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<bitset>#include<cassert>#include<cctype>#include<cmath>#include<cstdlib>#include<ctime>#include<deque>原创 2020-08-15 18:53:39 · 187 阅读 · 0 评论 -
[2020 年百度之星·程序设计大赛 - 复赛] Battle for Wosneth 期望+逆元
题目链接:Battle for Wosneth 题意中文题意不多解释题解A先手,B后手我们可以列一个表格。[pqpq......p(1−p)(1−q)(1−p)(1−q)......(1−p)]{ \begin{bmatrix} p & q & p & q & ...... p\\ (1-p) & (1-q) & (1-p) & (1-q) & ...... (1-p)\\ \end{bmatrix} }[p(1−p)q(1−q原创 2020-08-10 12:14:03 · 274 阅读 · 3 评论 -
[2020牛客暑期多校训练营第九场] E.Groundhog Chasing Death 唯一分解+欧拉降幂
题目链接:E.Groundhog Chasing Death题意题意很简单,求∏i=ab∏i=cdgcd(xi,yj){ \prod_{i=a}^b \prod_{i=c}^d gcd(x^i,y^j)}∏i=ab∏i=cdgcd(xi,yj),原创 2020-08-10 11:16:08 · 138 阅读 · 0 评论 -
[2020牛客暑期多校训练营第七场] H.Dividing 整数分块
题目链接:H.Dividing题意给你一个定义:(1,k)的元组定义为一个Legend Tuple。如果 (n, k) 是一个Legend Tuple,那么(n+k,k)也是一个Legend Tuple。如果 (n, k) 是一个Legend Tuple,那么(nk,k)也是一个Legend Tuple。给你N和K,代表着1≤n≤N,1≤k≤K。问你在这个区间有多少个Legend Tuple。题解首先我们可以罗列所有的符合条件的Legend Tuple。(1,1) (2,1) (3,1原创 2020-08-02 15:57:23 · 251 阅读 · 0 评论 -
[2020牛客暑期多校训练营第七场] B.Mask Allocation GCD
题目链接:B.Mask Allocation题意本题的题意是个难点,我们花了将近一个多小时才把题意搞懂。。给你n和m,让你构造一个数组,要求数组里的数不能拆分只能合并,使之可以合并为n个m和m个n,答案可能有多种,要求输出长度最小的。题解本题我们猜了一个结论,发现选中的数字可以通过欧几里得算法(求gcd)确定,而每一步求解的结果为选中的数字。以10 6为例:选中的数字有6,10%6,6%(10%6)。所以很容易确定构造数组中的数字,现在我们需要确定数字的个数。通过猜想加验证,发现次数为m∗⌊原创 2020-08-02 10:56:22 · 173 阅读 · 0 评论 -
[2020牛客暑期多校训练营第一场] J题 Easy integration
题目链接:Easy Integration题意:输入n,求解∫01(x−x2)n dx的值,对998244353取模。\int_0^1 {({x-x^2})^n }\,{\rm d}x的值,对998244353取模。∫01(x−x2)ndx的值,对998244353取模。题解:多次运用分部积分能找到规律,猜出答案,答案正确性可通过数学分析法求证。∫01(x−x2)n dx\int_0^1 {({x-x^2})^n }\,{\rm d}x∫01(x−x2)ndx⇒ ∫01xn∗(1−x)n dx\原创 2020-07-12 22:07:05 · 208 阅读 · 0 评论 -
数论——逆元
逆元引言(a*b)%m=(a%m*b%m)%m但是 ab{\frac{a}{b}}ba%m ≠ a%mb%m{\frac{a\%m}{b\%m}}b%ma%m%m有一个方法可以求,但对b,m有限制。ab{\frac{a}{b}}ba%m=a%(b∗m)b{\frac{a\%{(b*m)}}{b}}ba%(b∗m)设 k= ⌊ab÷m⌋{\lfloor{\frac{a}{b}\div m}\rfloor}⌊ba÷m⌋ ,x = ab%m{\frac{a}{b}\% m}ba%m⇒原创 2020-05-30 19:22:35 · 654 阅读 · 0 评论 -
codeforces 1359 E. Modular Stability
E. Modular Stability题目 problem题意:给[1,n]个数,从中选择不同的k个数字使之满足,对于任意非负整数x满足p为选中这k个数字的全排列。(答案对998244353 取模)题解:本题是有规律的,找出最小的 a1{_1}1,剩下的a2{_2}2,a3{_3}3…ak{_k}k必须为a1的倍数才能满足条件。反证法:am{_m}m 不为a1{_1}1的倍数,当x=am{_m}m时,x%am{_m}m==0,((x%a1{_1}1)%…)%ak{_k}k!原创 2020-05-30 00:43:02 · 282 阅读 · 0 评论