----------数论----------
文章平均质量分 96
FSYo
我不去想是否能够成功,
既然选择了远方,
便只顾风雨兼程
展开
-
CometOJ contest#13「火鼠的皮衣 -不焦躁的内心-」(单位根反演)
给定 n,a,b,pn,a,b,pn,a,b,p,求 ∑i=0n2aibn−i∗2(n2∗i)\sum_{i=0}^{\frac{n}{2}}a^ib^{n-i*2}\binom{n}{2*i}i=0∑2naibn−i∗2(2∗in) 指数不相同,丑陋 ∑i=0n2ai∗2bn−i∗2(n2∗i)\sum_{i=0}^{\frac{n}{2}}\sqrt a^{i*2}b^{n-i*2}\b...原创 2019-10-25 23:36:03 · 178 阅读 · 0 评论 -
近期刷题总结 [19 03 30]
目录 P2495 [SDOI2011]消耗战[ 虚树 ] P5002 专心OI - 找祖先 P4562 [JXOI2018]游戏[ 组合数学 ] P1505 [国家集训队]旅游 [ 树剖模板 ] P4317 花神的数论题 [ 数位DP ] P3107 [USACO14OPEN]里程表Odometer[ 数位DP ] P3527 [POI2011]MET-Meteors[ ...原创 2019-03-30 22:32:36 · 467 阅读 · 0 评论 -
近期刷题总结 [19 03 24]
目录 CF14D Two Paths[树的直径] P3174 [HAOI2009]毛毛虫[树的直径] P2312 解方程[秦九韶算法] CF888D Almost Identity Permutations[ DP ] CF888G Xor-MST[0/1 trie] CF863D Yet Another Array Queries Problem[ splay 模板 ] ...原创 2019-03-24 10:20:52 · 562 阅读 · 0 评论 -
暑假好题汇总
目录 [JSOI2007]文本生成器 [AC自动机 + DP] BZOJ3687简单题[Bitset] 恨 7 不成妻[数位 DP] [SHOI2011]双倍回文[Manacher] [NOI2007]货币兑换[CDQ+斜率优化DP] BZOJ2655 calc[ 生成函数 + DP + 拉格朗日差值 ] P3401 洛谷树[树链剖分] [BZOJ4205][WOJ3...原创 2019-07-07 22:01:43 · 234 阅读 · 0 评论 -
膜拜tshoigyr系列----思维题集锦+斯特林数小结+置换群
n 个 集合, 并集是 [1 -- m] 求方案数 例: n = 2, m = 2 有 ((1,2), (1, 2)) ((1, 2), 1) (1, (1, 2)) ((1, 2), 2) (2, (1, 2)) (0, (1, 2)) ((1, 2), 0) (1, 2) (2, 1) 9 种 解 : n = 3 时, 把 1 -- m 每一个数放进 1 -- 7 个格子中, 可以不放...原创 2019-07-03 09:56:58 · 234 阅读 · 0 评论 -
毒瘤多项式以及一些毒瘤定理的总结
整理一下这两天学的毒瘤玩意 二项式反演 若有 则有 因为 有一种应用是错排, fn表示有n个是错排的方案, gn表示n个的总方案, 枚举有i个没有对上号, 就有 反演过后 除以一个 n! 算概率, 发现是 e ^ -1 的泰勒展开, 太神奇了 FFT 两个核心式子 然后就可以推了, 从下层把答案推到上层 分治FFT 先求出 [l - mid...原创 2019-06-27 23:11:30 · 216 阅读 · 0 评论 -
UOJ450 [集训队作业2018] 复读机 [生成函数+单位根反演]
传送门 可以先构造生成函数,然后单位根反演 当 d = 2 时 , 需要自己与自己卷 k 次,然后求第 n 项 泰勒展开一下,第 n 项就是 当 d = 3时,直接暴力枚举 w(3, 0), w(3, 1), w(3, 2) 出现了多少次 #include<bits/stdc++.h> #define N 500050 using namespace st...原创 2019-08-07 16:33:52 · 195 阅读 · 0 评论 -
BZOJ3516 国王奇遇记 [推式子/DP]
传送门 , n <= 1e9, m <= 1e3 由于 n 太大,无法枚举,我们需要一种与 m 有关的算法,比较容易想到由 m 的答案 推到 m + 1 的答案 然后就可以 O(m^2) DP 了 #include<bits/stdc++.h> #define N 1050 using namespace std; const int Mod = 100...原创 2019-08-09 21:49:31 · 296 阅读 · 0 评论 -
BZOJ2987 Earthquake [类欧几里得]
传送门 关于求, 需要用到类欧几里得 设 当时, 当时 关于本题 枚举 x 发现 x 可以改为 c/a - x #include<bits/stdc++.h> using namespace std; typedef long long ll; ll a, b, c; ll f(ll a, ll b, ll c, ll n)...原创 2019-08-14 14:30:42 · 156 阅读 · 0 评论 -
P5170 [模板] 类欧几里得算法
传送门 关于 f ( a >= c | b >= c) (a < c & b < c) 关于 g 首先有 暴力拆开发现 但 a < c 的时候有点头凸 考虑 类似套路的可以推到 关于 h 跟 f 一样,不想打了 #include<bits/stdc++.h> using namespace ...原创 2019-08-14 17:06:26 · 161 阅读 · 0 评论 -
暑假集训 ---- 数学常识!
BZOJ 2655 calc 先弄出答案的生成函数 ∏(1+a1x)(1+a2x)(1+a3x)...(1+aAx)\prod (1+a_1x)(1+a_2x)(1+a_3x)...(1+a_A x)∏(1+a1x)(1+a2x)(1+a3x)...(1+aAx) 这个多项式的第 n 项就是答案 考虑DP来求, fi,jf_{i,j}fi,j 表示考虑到 aiaiai, 多项式第 j 项...原创 2019-10-01 19:44:42 · 224 阅读 · 0 评论 -
近期刷题总结[2019 03 09]
目录 寻找段落[分数规划+单调队列] P4319 变化的道路[LCT + 线段树分治] P2485 [SDOI2011]计算器[exgcd, bsgs] [模板] P4458 [BJOI2018]链上二次求和[线段树][二次前缀和] 严格次小生成树[最小生成树+倍增] P2120 [ZJOI2007]仓库建设[斜率优化板子] P2155 [SDOI2008]沙拉公主的困惑...原创 2019-03-09 23:39:58 · 265 阅读 · 0 评论 -
BZOJ1257, 2226, 2705[欧拉函数] [整除分块]
BZOJ1257 模转除, 整除分块就可以了 #include<bits/stdc++.h> #define LL long long using namespace std; int n,k; LL ans; int main(){ scanf("%d%d",&n,&k); ans = (LL)k * (LL)n; LL ret = 0; for(i...原创 2019-02-16 23:19:00 · 221 阅读 · 0 评论 -
一些常见的积性函数与狄利克雷卷积
原创 2019-02-16 20:09:56 · 578 阅读 · 0 评论 -
cost数[容斥原理][搜索]
https://blog.csdn.net/forever_dreams/article/details/83618949 %%% gsj神仙 %%% #include<bits/stdc++.h> #define N 40 #define ll long long using namespace std; int n,m,a[N],ans; bool cm...原创 2018-11-01 22:55:03 · 232 阅读 · 0 评论 -
越狱[数论+快速幂]
传送门 一共有m^n种情况 , 不发生越狱的有 m * (m-1) * (m-1) ... (n-1 个 m-1) 因为第一个人有m个可以选 , 后面的只有m-1 个可以选 , 快速幂乘一下就可以了 #include<bits/stdc++.h> #define LL long long #define P 100003 using namespace std; LL n,m;...原创 2018-11-25 13:00:06 · 228 阅读 · 0 评论 -
排列计数[luogu4071][逆元][错排列]
传送门 D[i]表示错排列个数 , 可以证明 然后预处理阶乘 , 查询时逆元搞一波就好了 (这年头用ex_gcd写逆元的真少) #include<bits/stdc++.h> #define N 1000000 #define LL long long #define P 1000000007 using namespace std; LL C[N+50],D[N+5...原创 2018-11-27 21:09:26 · 180 阅读 · 0 评论 -
扩展中国剩余定理
其中m不互质 我们假设前k-1个方程的一个解为ans 显然通解为ans + t * lcm , 其中lcm为前k-1项的最小公倍数 , t为任意整数 我们现在要求t 满足 也就是 转换为exgcd的形式 显然最后的t就是 解出来的t 乘一个 luogu4777 #include<bits/stdc++.h> #define N 100050 #defi...原创 2018-12-08 11:43:46 · 223 阅读 · 0 评论 -
P4028 New Product [高次同余方程]
传送门 题意 : 求 x 使 a ^ x = b ( mod p ) 我们设x = i * m - j 则 原方程等价于 我们预处理b*a^j 的值 , 存到map中, 然后枚举i 直到有a^j与之相等 发现当m = sqrt(p) 时最优 #include<bits/stdc++.h> #define LL long long using namespace std...原创 2018-12-19 20:03:10 · 194 阅读 · 0 评论 -
Calculating [整除分块]
传送门 根据小学奥数知识 , 要求的就是1-n的所有数的约数个数和 我们从每个约数i的贡献考虑 , i的贡献即为 [n/i] 这里向下取整 所以要求的就是 这里用整除分块可以降到 介绍一下整除分块 , 一般用于上面这一类式子 我们发现有一段区间n/i是相等的 , 不妨设为l和r , 满足 [n/l] = [n/r] = x 当 r 等于 [n / x] 根据取整的性质 ...原创 2018-12-09 16:25:43 · 251 阅读 · 0 评论 -
[CQOI2007]余数求和 [整除分块]
传送门 考虑整除分块 , 对于一个答案固定的区间 l , r l为左区间 设值为x=n/l 那么这个区间的贡献就是 #include<bits/stdc++.h> #define LL long long using namespace std; int n,k; LL ans; int main(){ scanf("%d%d",&n,&k); a...原创 2018-12-09 16:41:16 · 148 阅读 · 0 评论 -
Lucas 定理 [证明][模板]
Lucas 定理 其中 i = n/p , j = m/p , a = n % p , b = m % p 证明 令n = ()p 首先有 所以 对于左边的第m位的系数 , 即x^m 的系数 是C(n,m) 而对于右边 , x^m 的系数 是 , 即k = m/p , l = m%p 证毕 模板题 #include<bits/stdc++.h>...原创 2019-01-13 11:45:23 · 305 阅读 · 1 评论 -
[SCOI2010]生成字符串 [排列组合]
传送门 放在坐标系里 , 选1为横坐标加1 , 0为纵坐标加1 , 重点是(n,m) 减去不合法的 解释一下这个图 , 我们将碰到y=x+1 的点翻折 , 原点一定翻折到(-1,1) 也就是说 , 所有从(-1,1)出发的点都是不合法的 , 方案数为 C(n+m,n+1) #include<bits/stdc++.h> #define N 2000050 #de...原创 2019-01-13 12:42:00 · 201 阅读 · 0 评论 -
T3 [组合+DP]
T3 [题目描述] 给你 m 个不同数字,然后用这些数字组成长度为 n 的序列,且保证至少有长度>=k 的一段相同数字的方案数。 [输入格式] 3 个整数 N,M,K [输出格式]一行,输出的答案值 MOD 10^9+7 [输入样例] 3 2 2 [输出样例] 6 [数据规模] 1<=N,M,K<=10^6 数学推理好题啊 考虑总数减不合法的, 就是m^n...原创 2019-01-26 20:06:30 · 202 阅读 · 0 评论 -
缩进优化 [WOJ4371] [数学][有关复杂度的一些计算]
传送门 我们发现对于一段ai,ai/x是相同的,我们用差分数组记录个数,乘上贡献就可以了 复杂度有一个比较重要的东西 #include<bits/stdc++.h> #define N 1000050 #define LL long long #define inf 1000000000000000 using namespace std; int a[N],Max...原创 2019-02-15 16:02:03 · 136 阅读 · 0 评论 -
洛阳杯[数论][线性筛]
分析 (https://blog.csdn.net/forever_dreams/article/details/83450135) #include<bits/stdc++.h> #define N 100005 using namespace std; int n,m,a[N],isp[N],prim[N],tot; int g[N],ans; bitset...原创 2018-10-28 11:06:56 · 207 阅读 · 0 评论