- 博客(131)
- 收藏
- 关注
原创 三维最小球覆盖(模拟退火)
地址:代码:int n;Point p[N];i <= n;i++)st *= rate;return ans;cin >> n;i <= n;return 0;
2024-09-08 00:37:02
468
原创 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
704
1
原创 外星千足虫(高斯消元+bitset优化)
高斯异或线性方程组,但是n最多到2e3,所以用bitset优化一下(类似与二维数组,但取值只能是0或1,对时间的优化主要在两行数异或,从o(n)变为0(1))。
2024-07-24 00:58:04
466
原创 约旦消元求逆矩阵
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
312
原创 OSU!题解(概率dp)
对于到i点的每一个l,如果第i+1点为1,那么会新增分数3*l^2+3*l+1;(p代表截止到i获得长度l的概率);)表示截止到i所获得的分数;
2024-07-16 08:45:36
245
原创 亚瑟王(概率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
797
原创 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
882
原创 Bag of mice(概率dp)
2.当先手未取到白鼠,先手要向赢,后手也不能取到白鼠,跑掉的那一只随意。概率dp,设f[a][b]为白鼠为a个,黑鼠为b个时,赢的期望。1.当先手取到白鼠时 a/(a+b);
2024-07-13 11:31:51
325
原创 奖励关(概率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
276
原创 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
688
原创 二维前缀和
记录矩阵:(x1,y1),(x2,y2) a[x1][y1]++,a[x1][y2+1]--,a[x2+1][y1]--,a[x2+1][y2+1]++;读取矩阵:a[x2][y2]-a[x2][y1-1]-a[x1-1][y1]+a[x1][y1]。读取矩阵:a[x2][y2]-a[x2][y1-1]-a[x1-1][y1]+a[x1][y1]遍历一遍数组:使a[i][j]表示x在(1,i),y在(1,j)的子矩阵和。遍历一边数组,使a[i][j]表示x=i,y=j时的值。记录点:a[i][j]++;
2024-06-05 02:25:14
176
原创 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
770
原创 两球体积交
#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
440
1
原创 求和(第二斯特林数+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
870
原创 P9238 [蓝桥杯 2023 省 A] 翻转硬币(杜教筛+莫比乌斯)
题目:https://www.luogu.com.cn/problem/P9238
2024-03-09 19:34:49
1944
原创 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
726
原创 杜教筛模板
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
366
原创 P4859 已经没有什么好害怕的了(二项式反演+dp)
题录:P4859 已经没有什么好害怕的了 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
2024-02-28 16:21:37
577
原创 快乘模板(long double 或者二进制)
a*b%p,当a*b可能会超过 long long 范围,我们可以用long double 优化;时间复杂度为O ( 1 ) ,适合用于卡常数的题目。与快速幂类似,将b二进制分解;
2024-02-01 16:55:12
180
原创 任意模数多项式乘法(洛谷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
377
原创 多项式乘法逆(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
577
原创 分治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
694
原创 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
818
原创 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
378
原创 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
864
原创 洛谷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
425
原创 莫比乌斯反演(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
1491
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人