![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论
文章平均质量分 76
数学知识
yusen_123
这个作者很懒,什么都没留下…
展开
-
Matrix Equation(高斯线性异或消元+bitset优化)
对于b[i,j]*c[i,j],b[i,j]可以与a[i,i]异或让他转换到左边,而右边一列全为0。mod2,当这一行相乘1的个数为奇数时,z(i,j)为1,偶数为0,是异或消元。每一列的解是不能确定元素cn个的2^cn。我们发现对于矩阵C可以一列一列求。异或消元可以用bitset优化。原创 2024-07-26 01:47:09 · 606 阅读 · 0 评论 -
外星千足虫(高斯消元+bitset优化)
高斯异或线性方程组,但是n最多到2e3,所以用bitset优化一下(类似与二维数组,但取值只能是0或1,对时间的优化主要在两行数异或,从o(n)变为0(1))。原创 2024-07-24 00:58:04 · 407 阅读 · 0 评论 -
约旦消元求逆矩阵
LL a[N][N];int n;LL ans=1;while(b){b>>=1;a=a*a%mod;return ans;int guss()c<=n;c++)i<=n;if(!i<=2*n;i>=c;i<=n;i++)j>=c;j--)r++;i>=1;i--)j<=n;j++)k<=2*n;k++)return 1;cin>>n;i<=n;原创 2024-07-22 23:57:30 · 267 阅读 · 0 评论 -
亚瑟王(概率dp)
如果第i张牌发动:f[i][j]+=f[i-1][j-1]*(1-s[i][r-j+1]);答案为g[i]*d[i](1<=i<=n),出现的概率*相应的概率,即为期望伤害。如果第i张牌不发动:f[i][j]+=f[i-1][j]*s[i][r-j];原创 2024-07-15 21:47:55 · 762 阅读 · 0 评论 -
P1850换教室 题解(概率dp)
1.上节课申请:f[1][i-1][j-1]+1.0*dis[c[i]][c[i-1]]*(1-k[i])*(1-k[i-1])+1.0*dis[c[i]][d[i-1]]*(1-k[i])*k[i-1]1.上节课申请:f[1][i-1][j]+k[i-1]*dis[c[i]][d[i-1]]+1.0*(1-k[i-1])*dis[c[i]][c[i-1]];2.上节课不申请:f[0][i-1][j]+dis[c[i]][c[i-1]];c[i],d[i],k[i]和题意里相同含义;原创 2024-07-14 17:24:22 · 839 阅读 · 0 评论 -
Bag of mice(概率dp)
2.当先手未取到白鼠,先手要向赢,后手也不能取到白鼠,跑掉的那一只随意。概率dp,设f[a][b]为白鼠为a个,黑鼠为b个时,赢的期望。1.当先手取到白鼠时 a/(a+b);原创 2024-07-13 11:31:51 · 284 阅读 · 0 评论 -
奖励关(概率dp+状压)
枚举每个物品z,当前物品可取时,f[i][j]+=max(f[i+1][j|(1<<(z-1))]+w[z],f[i+1][j])/n;设f[i][j]为已进行了i-1次选择,状态为j,采用最优策略的期望值。不可取时 f[i][j]+=f[i+1][j]/n;概率dp题,因为最多只有15个物品,考虑状压。进行第i次选择时,每个物品等概率出现。最后答案为f[1][0];原创 2024-07-12 23:39:26 · 246 阅读 · 0 评论 -
216. Rainbow的信号(数学期望)
当v=1时,z[k]=r-z[k],对答案的贡献是((z[k]-1)*(2^(k+1))+2^k)/(n*n);当v=1,x[k]=x[k],对答案贡献为((r-x[k]-1)*2^(k+1)+2^k)/(n*n);v=1,y[k]=r,对答案贡献((y[k]-1)*2^(k+1)+2^k)/n*n;当v=0时,z[k]=z[k],对答案贡献是2*(k+1)*z[k]/(n*n);v=0,y[k]=y[k],对答案贡献y[k]*2^(k+1)/n*n;当v=0,x[k]=r,对答案贡献为0;原创 2024-07-12 17:53:51 · 650 阅读 · 0 评论 -
线性求1-n的逆元
2.设a=n/x,b=n%x;求x在modn的逆元。原创 2024-06-25 22:11:39 · 207 阅读 · 0 评论 -
Hash Function(fft)
系数大于0,说明存在a=ai-aj+50000这样的数存在,让a-50000,存到一个数组中。然后从n枚举到500000,枚举n的倍数,如果数组中没有n的倍数,答案就取n;题意:给定一个序列,求使得任意两数的hash值不同的最小模数;如果暴力求解,o(n2),会超时,可以用fft来优化。,但次方不可<0,所以让所有次方加上500000,让。也就是说seed不能是任意两数差的因子。分析:a=b(mod seed)让两序列进行fft,得到序列如果。序列为当以a1>0时,我们就让。对于另一个序列,本应该是。原创 2024-05-06 00:10:32 · 721 阅读 · 0 评论 -
两球体积交
#include<bits/stdc++.h>using namespace std;#define LL long longconst int N = 2e6;const long long inf = 1e9;const long long mod = 998244353;const double PI = acos(-1);struct Point{ long double x, y, z;}p[6];struct Ball{ Point o; lon原创 2024-05-05 23:15:48 · 392 阅读 · 0 评论 -
魔法手链(burnside+矩阵优化+dp acwing 3134)
题目:3134. 魔法手链 - AcWing题库原创 2024-03-14 18:23:53 · 1152 阅读 · 0 评论 -
求和(第二斯特林数+ntt)
思路:#define _CRT_SECURE_NO_WARNINGSLL ans = 1;while (b)b >>= 1;return ans;h[0] = 1;i <= n;i++)g[1] = -1;i <= n;i++)g[i] = x;i < tot;i++)m <= tot;m <<= 1)i < tot;i += m)原创 2024-03-09 22:51:37 · 837 阅读 · 0 评论 -
P9238 [蓝桥杯 2023 省 A] 翻转硬币(杜教筛+莫比乌斯)
题目:https://www.luogu.com.cn/problem/P9238原创 2024-03-09 19:34:49 · 1853 阅读 · 0 评论 -
P3768 简单的数学题(莫比乌斯反演+杜教筛)
题目:P3768 简单的数学题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)思路:代码:#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<string>#include<cstring>#include<cmath>#include<ctime>#include<algorithm>#include<utility原创 2024-03-08 20:49:19 · 694 阅读 · 0 评论 -
杜教筛模板
LL n;i < N;i++)if (!j++)break;i < N;i++)l <= n;l = r + 1)elsereturn ans;LL ans = 1;l <= n;l = r + 1)elsereturn ans;init();int T;cin >> T;原创 2024-03-08 00:04:17 · 346 阅读 · 0 评论 -
任意模数多项式乘法(洛谷4245)
代码:#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include<string>#include<cstring>#include<cmath>#include<ctime>#include<algorithm>#include<utility>#include<stack>#include<queue>#include&原创 2024-02-01 16:39:07 · 345 阅读 · 0 评论 -
多项式乘法逆(p4238 NTT)
代码:int rel[N];LL gi = 0;LL ans = 1;while (b)b = b >> 1;return ans;i < tot;m <= tot;m <<= 1)i < tot;i += m)LL gk = 1;j < m / 2;j++)return;bit = 0;i <len;i <tot;原创 2024-01-26 17:35:29 · 543 阅读 · 0 评论 -
分治NTT(洛谷P4721)
对于区间(l,r),当我们算出f[l]-f[mid](mid=(l+r)>>1),我们可以算出(l,mid)对后边区间贡献,再算(mid+1,r)内的f值。可以发现,i<j,f[i]会对f[j]有贡献,而f[j]对f[i]没有贡献,考虑分治。如果用NTT一个一个求时间复杂度是O(n^2)。原创 2024-01-26 02:49:59 · 572 阅读 · 0 评论 -
力(FFT,acwing2313)
https://www.acwing.com/problem/content/2315/原创 2024-01-25 01:07:41 · 375 阅读 · 0 评论 -
acwing2241 礼物( FFT)
int n, m;int rel[N];i < tot;i++)m <= tot;m *= 2)i < tot;i+=m)j < m / 2;j++)LL bb = 0;i <n;i++)i < n;i++)i <= n - 1;i++)n--;i < tot。原创 2024-01-24 20:55:29 · 799 阅读 · 0 评论 -
2526. 随机数生成器(BSGS,推导)
https://www.acwing.com/problem/content/2528/原创 2024-01-22 22:20:14 · 383 阅读 · 0 评论 -
龙哥的问题(积性函数,莫比乌斯反演)
221. 龙哥的问题 - AcWing题库原创 2024-01-19 17:08:42 · 356 阅读 · 0 评论 -
Lcms(莫比乌斯反演)
https://www.luogu.com.cn/problem/AT_agc038_c原创 2024-01-19 15:17:42 · 1585 阅读 · 0 评论 -
最小公倍数之和(莫比乌斯反演P3911)
P3911 最小公倍数之和 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)原创 2024-01-19 02:24:34 · 770 阅读 · 0 评论 -
[ABC304F] Shift Table(莫比乌斯反演)
容斥原理,莫比乌斯反演应该都可以,我用的是莫比乌斯反演。原创 2024-01-19 00:59:45 · 887 阅读 · 0 评论 -
Array Equalizer(莫比乌斯反演)
1605E - Array Equalizer思路:原创 2024-01-17 22:12:47 · 819 阅读 · 0 评论 -
P2257 YY的GCD(莫比乌斯)
给定 N,M,求 1≤x≤N,1≤y≤M 且 gcd(x,y) 为质数的(x,y) 有多少对。神犇 YY 虐完数论后给傻× kAc 出了一题。T 行,每行一个整数表示第 i 组数据的结果。接下来 T 行,每行两个正整数,N,M。第一行一个整数 T 表述数据组数。原创 2024-01-17 15:51:55 · 354 阅读 · 0 评论 -
P3704数字表格(莫比乌斯反演)
第 i 行第 j 列的格子中的数是 gcd(i,j),其中gcd(i,j) 表示 i,j 的最大公约数。Doris 刚刚学习了 fibonacci 数列。用 fi 表示数列的第 i 项,那么。Doris 的表格中共有 n×m 个数,她想知道这些数的乘积是多少。Doris 用老师的超级计算机生成了一个 n×m 的表格,接下来 T 行,每行两个整数 n,m,表示一组数据。输入的第一行是一个整数 T,表示测试数据的组数。对于每组数据,输出一行一个整数表示答案。答案对 109+7 取模。原创 2024-01-05 09:27:18 · 829 阅读 · 0 评论 -
洛谷p1829(莫比乌斯反演)
思路:#define _CRT_SECURE_NO_WARNINGSint n,cn,m;LL mu[N];mu[1] = 1;i <= N;i++)if (!j++)i <= N;i++)LL res = 0;l <= n;l = r + 1)return res;int main()into();LL ans = 0;l <= n;原创 2024-01-04 21:43:14 · 400 阅读 · 0 评论 -
acwing 1358. 约数个数和(莫比乌斯函数)
设 d(x)�(�) 为 x� 的约数个数,给定 N,M�,�,求。原创 2024-01-04 16:30:01 · 342 阅读 · 0 评论 -
莫比乌斯反演(acwing2702)
对于给出的 n� 个询问,每次求有多少个数对 (x,y)(�,�),满足 a≤x≤b,c≤y≤d�≤�≤�,�≤�≤�,且 gcd(x,y)=kgcd(�,�)=�,gcd(x,y)gcd(�,�) 函数为 x� 和 y� 的最大公约数。原创 2024-01-04 14:50:18 · 1425 阅读 · 0 评论 -
破阵子(三分+凸包旋转卡壳)
输入一个正整数T(T<=10),表示有T组数据,每组数据包括一个n(n<=10000),表示有n个点,每行包括每个点的坐标 (x,y) (-100000<=x,y<=100000),速度向量 (vx,vy) (-1000<=vx,vy<=1000)他们每个点的位置和每个点的速度向量,现在求在哪个时刻的时候,他们的special dis 最小,并输出这个距离。平面上有n个点,每个点有各自的速度向量,现在给出0时刻,在同一时刻,平面点的最远距离叫做special dis。但发现dis不一定随时间增大而增大,原创 2023-12-06 20:01:38 · 69 阅读 · 0 评论 -
梦回吹角连营(2)(快速幂&快乘)
给定f(n)=(a+1)*n^a+(a+2)*n^(a+1)+...+b*n^(b-1)输入一个正整数T(T<=10),表示有T组数据,每组数据包括三个整数a,b,n。输出 f(n)%10000000033 的结果。注意:这题数非常大,两数相乘用快乘模板。得到 S(a),S(b),用快速幂模板。求f(n)%10000000033。原创 2023-12-05 21:41:11 · 114 阅读 · 0 评论 -
Period of an Infinite Binary Expansion(分析+欧拉)
我们设第一次进入循环的位置是i,第一次循环结束后,再次进入循环的位置是j;我们可以便利phi(q1)因子,找到最小满足方程的因子k,那么j-i=k;对于一个小于1的数,化为二进制,找第一次进入循环的位置和最小循环周期。由于p,q互素,得2^i(2^(j-i)-1)=0(mod q);移位得:p*2^i(2^(j-i)-1)=0(mod q)根据欧拉函数phi(q1)为方程一个解,但不一定是最小;由i,j定义可得p*2^i=p*2^j(mod q)i=q能整除2最多次数(i取最小)原创 2023-12-01 20:05:07 · 88 阅读 · 0 评论 -
C - GCD(因子分解+欧拉函数)
/防止i*i==n时算两遍。枚举因子i(1,n),对于每个因子i(i>=m),求有多少个x(1,n)使得gcd(x,n)=i。gcd(x,n)=i <=> gcd(x/i,n/i)=1 <=> 求n/i的欧拉函数的值。原创 2023-12-01 18:06:22 · 70 阅读 · 0 评论 -
The Euler function(线性筛求1-n的欧拉值)
i<=b;i++)i>=b;i--)phi[1] = 1;i <= N;i++)if (!vis[i])j++)vis[m] = 1;break;elseint main()into();=EOF)LL ans = 0;i <= b;i++)return 0;原创 2023-12-01 17:42:25 · 41 阅读 · 0 评论 -
找新朋友(线性筛求1-n各个数欧拉值)
i=b;i--)LL n, a, b;i 1)return 0;原创 2023-12-01 17:34:38 · 37 阅读 · 0 评论 -
五十弦翻塞外声(素数筛+素因子分解)
输入一个正整数T(T<=10000),表示有T组数据,每组数据包括一个整数n(1<=n<=1e12)如果先用素数筛筛出1e6内的素因子,大概是1e4*1e4.如果直接质因子分解,1e4*1e6,会超时。原创 2023-11-27 18:13:06 · 46 阅读 · 0 评论 -
梦回吹角连营(快乘&快速幂模板)
输入一个正整数T(T原创 2023-11-26 22:35:19 · 129 阅读 · 0 评论