随笔分类 -  ACM / 数论 容斥原理

摘要:原题链接 考察:莫比乌斯反演 思路: 参考的大佬的题解.这位老师总结的套路总结的很好:GO 主要为: 优先提取gcd(i,j) 将$gcd(i,j) = d$化为 \(gcd(i/d,j/d) = 1\) \(\sum_{d|gcd(i,j)}^{gcd(i,j)} mob[i] = [gcd(i, 阅读全文
posted @ 2021-06-20 10:14 acmloser 阅读(30) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:容斥原理 or 莫比乌斯反演 思路: 枚举平方数: \(2^2,3^2,4^2,5^2,6^2,...,1e^{7^2}\) 对于$22$需要减去,$32$需要减去,$42$不需要计入,$62$需要减去...如果忽视指数,这就对应了莫比乌斯函数,我们预处理1e7以内的质数,然后利用$ 阅读全文
posted @ 2021-06-17 21:02 acmloser 阅读(73) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:容斥原理 只有我不会的容斥原理. 错误思路: 正向考虑,然后根本算不出来 思路: 这里主要是抽象成四个条件: 第一行没有人 最后一行没有人. 第一列没有人 最后一列没有人. 我想的是分情况讨论边角的情况,结果是情况太复杂了.这里的容斥主要是抽象出四个条件. 而且处理剩余位置也很妙,每 阅读全文
posted @ 2021-06-17 19:38 acmloser 阅读(37) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:莫比乌斯反演 思路: 发现gcd(i,j) = 1的损失能量都是1,gcd(i,j) = 2的,损失能量都是3...由此枚举gcd(i,j) = k,求$(n,m)$范围内$gcd(i,j) = k$的对数.时间复杂度大概是$O(n^{3/2})$ ##Code #include < 阅读全文
posted @ 2021-06-17 16:07 acmloser 阅读(31) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:容斥原理+组合数学 错误思路: 想得有点复杂,考虑未修改a数组的gcd的值,然后修改后的gcd的值,这么想完全没得思路. 正确思路: 假定当前$gcd(b_1,b_2,b_3,...,b_n) = d$,a数组有$cnt$个$d$的倍数. \(n-cnt>k,ans = 0\) \( 阅读全文
posted @ 2021-06-16 01:50 acmloser 阅读(26) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:莫比乌斯反演 菜狗不会啊QAQ 思路: 参考了大佬的题解,我们列出求答案的式子. \(\sum_{k=1}^{min(n,m)}[f[k]<=p]\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)==k]\) 注意:f[k]为k的质因子个数. \(\sum_{k=1} 阅读全文
posted @ 2021-06-15 21:46 acmloser 阅读(27) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:容斥原理 思路: xOz,yOz,xOy三个面就是当作二维面计算,每次计算*3即可.三维也是利用莫比乌斯函数计算,即容斥原理. ##Code #include <iostream> #include <cstring> using namespace std; typedef lon 阅读全文
posted @ 2021-06-15 10:43 acmloser 阅读(23) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:容斥原理(二项式反演) 思路: 根据题意,定义$g[i]$为使用颜色不超过i种的方案数,这个比较好求,但是$f[i]$恰好为i个就比较难求. 但我们可以发现: \(g[i] = C_i^0 f[0]+C_i^1 f[1] + C_i^2 f[2]+...+C_i^i f[i]\) 这 阅读全文
posted @ 2021-06-15 00:43 acmloser 阅读(20) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:容斥原理 这题完全不会....本蒟蒻连求出x~y区间p倍数的和都没想出来....虽然在质数距离那道题有涉及但是不完全想写那个公式..... 这道题也是HDU 1695 的变式,那道题是求[x,y]区间与x互质的个数,本质也是转化为1~y互质数-1~x的互质数. 参考大佬的思路: 将[ 阅读全文
posted @ 2021-01-31 21:47 acmloser 阅读(60) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:容斥原理 错误思路: 枚举预处理每一个数C4n 的组合数,将p数组的每一个数求约数集合,将约数个数>=4的纳入容斥的集合内.再用容斥计数解决. 时间复杂度是10000*100*2出现次数>=4的约数个数 ,前面的时间复杂度已经到了1e6,如果个数>7就已经有超时风险,更不要说总共10 阅读全文
posted @ 2021-01-31 18:29 acmloser 阅读(69) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:容斥原理 思路: 这道题就是 GCD HDU - 1695 的弱化版.把这道题翻译一下就是在(1,a)区间有多少个与(1,b)区间的数gcd=1 想出这个就可以解决了,如果a b都声明int型,相乘的时候我们不要忘记转化long long 1 #include <iostream> 阅读全文
posted @ 2021-01-31 15:01 acmloser 阅读(72) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:容斥原理 迷惑数据,108x15,我寻思这不要高精度?结果网上全是long long就过了... 思路: 观察发现如果能完成任务,那么n+1数字里至少有一对gcd是1,这样不好考虑,但碰到"至少一对"这种词语可以考虑补集思想,即没有一对公约数为1.这样就转化成求M的质因数...然后计 阅读全文
posted @ 2021-01-31 13:05 acmloser 阅读(59) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:容斥原理 入门题,我WA了两次... 坑点: m集合里有0,请务必看清题目做题 res是集合的最小公倍数,if判断条件也要改成最小公倍数... 其他的就是acwing的模板题改改部分代码即可 1 #include <iostream> 2 #include <algorithm> 3 阅读全文
posted @ 2021-01-31 03:00 acmloser 阅读(60) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:容斥原理 思路: 很容易想到筛质数,然后枚举质数2k 3k 5k ...但是如果从指数的取值范围考虑,最小是2,那么最大取到109 这样必定会TLE. 换个思路,如果从指数方面考虑,x2 x3 x5 .那么1~N中,最多有N1/k 个k√ N 个取到k次方的数.因为260 > 1e1 阅读全文
posted @ 2021-01-31 01:40 acmloser 阅读(49) 评论(0) 推荐(0) 编辑
摘要:原题链接 考察:容斥原理+埃氏筛+质因数分解 思路: gcd(x,y) = k 等价于gcd(x/k,y/k) = 1.设 u = x/k,v= y/k.找出范围内u与v互质的对数. 这里可以用欧拉函数做,枚举1~d/k每一个数i.如果i在b/k范围内就是欧拉函数值,如果>b/k就是该欧拉函数值-b 阅读全文
posted @ 2021-01-30 21:20 acmloser 阅读(81) 评论(0) 推荐(0) 编辑