![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论
文章平均质量分 51
~KIKI~
这个作者很懒,什么都没留下…
展开
-
CCA的期望(数学期望+Floyd)
题目链接:牛客练习赛74 E题目大意n个点m条边,每条边都有权值 的无向图,k次操作,每次操作是选择两个不同点,然后将这两个点之间的最短路上的所有点都染成黑色,起始点的颜色是ai,黑或者白,问你k次操作后黑色点个数的期望(mod 1023694381)。思路求黑色点个数的期望,可以转化成每个点可以染成黑色的概率之和。选点一共有cnt = n * (n - 1) / 2种情况,该点kk可以染成黑色的情况数就是能够经过该点的最短路的个数,这个最短路可以直接用Floyd预处理出来,判断如果di原创 2021-03-12 15:09:23 · 111 阅读 · 0 评论 -
多彩的树(状压dp + 数学)
题目链接:https://ac.nowcoder.com/acm/problem/17061题目大意n个点,n-1条边的树,每个节点都有颜色,一共有k种颜色,表示颜色有i种的路径数,求解1<=k<=10, 1<=n<=5e4思路颜色数量少,可以上状压,表示选中的颜色,比如5(101)表示当前选的颜色1,3。然后按照这些颜色跑树上的连通块,当前连通块大小是cnt,那么可以形成的路径数是cnt(单点)+(两个点)但是呢比如5(101)包含了4(100),1(001原创 2021-03-04 22:37:48 · 252 阅读 · 1 评论 -
Coprime Subsequences(数论gcd)
题目链接:https://ac.nowcoder.com/acm/problem/112055题目大意给你n个正整数,求gcd=1的子序列的个数(mod 1e9+7)思路gcd = i的序列是由一些i的倍数的数构成的,假设a[i]表示给的数中i的倍数的个数,那么这些数一共有(2^a[i] - 1)个组合,但是这些组合并不一定全都满足gcd = i,还要筛去gcd = i*2, i*3....这么多,剩下的才是满足条件的数量。而gcd = i*2 的组合一共有(2^a[i*2] - 1)这么多原创 2021-03-01 21:09:55 · 198 阅读 · 0 评论 -
欧拉降幂 模板
欧拉降幂用来求解 a^b % mod问题求解方法 :a^b%modif(b > mod) return a ^ (b % phi[mod]+ phi[mod]) % mod;else return a ^ (b % phi[mod]) % mod;//phi(欧拉函数,小于n的与其互质的个数)所以说要用到欧拉函数和快速幂。快速幂ll _pow(ll a, ll b, ll c){ ll ans = 1; while(b){ if(b &am原创 2021-02-03 22:54:56 · 201 阅读 · 0 评论 -
2021牛客寒假算法基础集训营2 I-牛牛的“质因数”
题目链接:点这里~题目大意F(x)表示将x做质因数分解后得到的数字从小到大升序排列,然后将其“拼接”成一个大整数。例如F(12)=223 求%(1e9+7) 1<=n<=4e6思路训练赛有打表的,有dfs的,我这里是bfs广搜,深度最大是7,不会超时 用线性筛筛出n内所有质因子,然后是字符串拼接,取模求和ac代码#include<bits/stdc++.h>using namespace std;#define ll long long#define原创 2021-02-03 22:37:46 · 178 阅读 · 0 评论 -
2021牛客寒假算法基础集训营1 A-串(数学推公式) J 一群小青蛙呱蹦呱蹦呱(LCM)
题目链接:点这里~题目大意长度不超过n,且包含子序列“us”的、只由小写字母构成的字符串有多少个? 答案对1e9+7取模。 子序列,us可以不相邻 范围:2≤n≤1e6思路数学推公式。如果要看dp推状态的点这里~ 正难则反,求不含us子序列的,比如n等于3。三个都选没有s,那么总共25*25*25 最后一个选了s,那么之前就不能选u,总共25*25*1 第二个选了s,那么倒数第一个不能选s,因为会和2重复,第一个不可以是u,总共25*1*25 第一个选了s,那么第二个和最后一个.原创 2021-02-01 22:24:02 · 454 阅读 · 1 评论 -
2020牛客暑期多校训练营(第四场)解题报告 BFH
题目链接:https://ac.nowcoder.com/acm/contest/5669B-Basic Gcd Problem题意:给你一个函数的定义,求解%输入:23 310 5输出:325hint:规律通过举例几个数就可以发现其实他就是在求,其中cnt表示n的质因子幂次之和,比如,那么cnt=1+2=3,那么。由于输入量有点大,需要提前预处理一下这个cnt,这边采用的是dp处理。还有一点就是需要特判一下n=1的情况cnt=0,所以输出1。...原创 2020-07-21 10:16:09 · 178 阅读 · 0 评论 -
zcmu 1549: 组合数(卢卡斯定理)
题目链接:https://acm.zcmu.edu.cn/JudgeOnline/problem.php?id=1549题目大意给你n,m,p,要你求组合数C(n, m)%p范围:(1 <= m <= n <= 10^9, m <= 10^4, 0< p <100 , p是素数)思路n和m范围很大,直接求C会t,但是这里模数p很小,那么可以从p下手。C(n, m) = n! * (n - m)! % p * m! % p应用一下 卢卡斯定理:对原创 2021-01-16 16:01:19 · 288 阅读 · 0 评论 -
牛客暑期多校训练营(第一场)J
Easy Integrationhint:用分部积分法求定积分,如下图解所以只需要求n ! ^ 2 / ( 2*n + 1 ) !就可以了(!为阶乘).由于n会比较大,用于除法会失精度,因此需要用到费马小定理:(当mod为质数时)a / b % mod = a * qpow(b , mod - 2) % mod;(qpow是快速幂)AC代码:#include<bits/stdc++.h>#define PB push_bac...原创 2020-07-13 18:45:21 · 184 阅读 · 1 评论