Code Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 300    Accepted Submission(s): 124 Problem Description WLD likes playing with codes.One day he is writing a function.Howerver,his computer b…
题意:给定上一个数组,求 析: 其中,f(d)表示的是gcd==d的个数,然后用莫比乌斯反演即可求得,len[i]表示能整队 i 的个数,可以线性筛选得到, 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string> #include <cstdlib> #include <cmath> #include…
Problem Description   > The Death Star, known officially as the DS-1 Orbital Battle Station, also known as the Death Star I, the First Death Star, Project Stardust internally, and simply the Ultimate Weapon in early development stages, was a moon-siz…
题目描述 有N2−3N+2=∑d∣Nf(d)N^2-3N+2=\sum_{d|N} f(d)N2−3N+2=∑d∣N​f(d) 求∑i=1Nf(i)\sum_{i=1}^{N} f(i)∑i=1N​f(i)  mod 109+7~mod~10^9+7 mod 109+7 1<=T<=5001<=N<=1091<=T<=500\\1<=N<=10^91<=T<=5001<=N<=109 只有最多555组数据N>106N>10…
[复习]莫比乌斯反演,杜教筛,min_25筛 莫比乌斯反演 做题的时候的常用形式: \[\begin{aligned}g(n)&=\sum_{n|d}f(d)\\f(n)&=\sum_{n|d}\mu(\frac{d}{n})g(d)\end{aligned}\] 实际上还有 \[\begin{aligned}g(n)&=\sum_{d|n}f(d)\\f(n)&=\sum_{d|n}\mu(\frac{n}{d})g(d)\end{aligned}\] 证明可以看看这里,…
interlinkage: https://www.luogu.org/problemnew/show/P4562 description: solution: 注意到$l=1$的时候,$t(p)$就是$1$出现的位置,答案就是$1$出现的位置之和; 这启发我们找一些关键的数字,这些数字在$[l,r]$内不存在约数; 结论是$t(p)$为最后一个关键数的位置; 不妨反证法,假设当所有的关键数都被用掉时还有数字没有筛掉.设最后一个关键数的位置为$pos$,既然还没有全部筛完,那么在$[pos+1,…
Recently, the bear started studying data structures and faced the following problem. You are given a sequence of integers x1, x2, ..., xn of length n and m queries, each of them is characterized by two integers li, ri. Let's introduce f(p) to represe…
直接用埃氏筛也可以做,但是这题写起来有点恶臭.. 更加简单的写法是直接枚举gcd=k,然后里面再枚举一次i*k,即找到k两个最小的倍数,看起来复杂度很高,但其实也是埃氏筛的复杂度 因为每次枚举gcd,相当于筛法中的枚举筛数,不同的是这题对于每个i在筛的过程中,不会筛到低,而是会中途退出循环,那么当其倍数i*k继续去筛的时候,仅仅是原来应该筛的数筛掉而已 ][]; int main() { int n; scanf("%d",&n); memset(value,,sizeof(v…
POJ3094 Sky Code(莫比乌斯反演) Sky Code 题意 给你\(n\le 10^5\)个数,这些数\(\le 10^5\),问这些这些数组成的互不相同的无序四元组(a,b,c,d)使得gcd(a,b,c,d)=1的四元组有多少? 解法 枚举一个约数\(k\),看看总共有多少个数\(S_k=\{x\}\)满足\(k|x\).那么可以保证(a,b,c,d)有的一个共同的因子是k,这样的四元组的个数就是 \[ F(k)={|S_k|\choose 4} \] 这样算会算重,比如枚举到…
题目描述 我们知道,从区间[L,H](L和H为整数)中选取N个整数,总共有(H-L+1)^N种方案.小z很好奇这样选出的数的最大公约数的规律,他决定对每种方案选出的N个整数都求一次最大公约数,以便进一步研究.然而他很快发现工作量太大了,于是向你寻求帮助.你的任务很简单,小z会告诉你一个整数K,你需要回答他最大公约数刚好为K的选取方案有多少个.由于方案数较大,你只需要输出其除以1000000007的余数即可. 输入 输入一行,包含4个空格分开的正整数,依次为N,K,L和H. 输出 输出一个整数,为…
题目描述 原题来自:Codeforces Round #400 B. Sherlock 有了一个新女友(这太不像他了!).情人节到了,他想送给女友一些珠宝当做礼物. 他买了 nnn 件珠宝.第 iii 件的价值是 i+1i+1i+1.那就是说,珠宝的价值分别为 2,3,4,⋯,n+12,3,4,\cdots ,n+12,3,4,⋯,n+1. Watson 挑战 Sherlock,让他给这些珠宝染色,使得一件珠宝的价格是另一件的质因子时,两件珠宝的颜色不同.并且,Watson 要求他最小化颜色的使…
我们一般写的埃氏筛消耗的时间都是欧拉筛的三倍,但是欧拉筛并不好想(对于我这种蒟蒻) 虽然 -- 我 -- 也可以背过模板,但是写个不会的欧拉筛不如写个简单易懂的埃氏筛 于是就有了优化 这个优化还是比较厉害的,能把埃氏筛的消耗的时间提的跟欧拉筛差不多 以下内容需要先学会埃氏筛 学会的埃氏筛就明白它的原理了吧 #include<bits/stdc++.h> using namespace std; int n, m ,Is_p[10000001]; int main() { cin >>…
[BZOJ 3930] [CQOI 2015]选数(莫比乌斯反演+杜教筛) 题面 我们知道,从区间\([L,R]\)(L和R为整数)中选取N个整数,总共有\((R-L+1)^N\)种方案.求最大公约数刚好为K的选取方案有多少个.由于方案数较大,你只需要输出其除以1000000007的余数即可. \[N,K,L,H \leq 10^9,H-L \leq 10^5\] 分析 \(\because \gcd(ka,kb)=k\gcd(a,b)\),我们先把\(L,R\)除以\(K\),然后问题就变成了…
从2e5-1依次枚举每个数作为主显卡,然后分段求比它大的数的个数,这里的复杂度是调和级数ln2e5,即埃氏筛的复杂度.. #include<bits/stdc++.h> using namespace std; #define ll long long #define N 200005 int cnt[N],n; #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 ll num[N<<]; void updat…
min_25 筛介绍 我们考虑这样一个问题. \[ans=\sum_{i = 1}^nf(i)\\ \] 其中 \(1 \le n \le 10^{10}\) 其中 \(f(i)\) 是一个奇怪的函数.并不像 \(μ(i),φ(i),iφ(i)\)那样具有那么好的性质.但是满足以下条件: 若 \(p\)为质数,则 \(f(p)\)是一个关于 \(p\)的多项式,比如 \(μ(p)=−1,φ(p)=p−1\). 若 \(p\)为质数,\(e\)为正整数,则 \(f(pe)\)可以很快求出.(通常是…
题目描述 小P同学在养殖一种非常凶狠的鱼,而且与其他鱼类不同,这种鱼越大越温顺,反而小鱼最凶残.当两条鱼相遇时, 小鱼会不断撕咬大鱼,每一口都咬下与它自身等重的肉(小鱼保持体重不变),直到大鱼的体重小于这条小鱼(若 两条鱼体重相同,一条鱼会将另一条撕咬殆尽). 现在池塘中有n条鱼,小P想知道哪一对鱼相遇后,被咬的鱼剩余体重最大. 输入格式 单组测试数据.第一行包含一个整数n,表示鱼的数量.(1 ≤ n ≤ 2e6) 第二行有n个用空格分开的整数ai 表示第i条鱼的体重(1 ≤ ai ≤ 1e6)…
目录 前言 题意 思路 一些建议 前言 本篇是对Liang-梁的Sirni(最小生成树,埃氏筛)的后继博客. 通篇原文:https://blog.csdn.net/qq_37555704/article/details/97107653?tdsourcetag=s_pcqq_aiomsg 本文稍加修正,分析了一些错误. 题意 给你 n 个点,每个点有一权值 Pi,两点i,j的边权为min(Pi%Pj,Pj%Pi),求最小生成树. 数据范围:n<=1e5,Pi<=1e7 思路 以下是原文: 首先…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5212 题意: 给定序列,1≤i,j≤n,求gcd(a[i],a[j])∗(gcd(a[i],a[j])−1)之和. 分析: 同样我们设 f(d):满足gcd(x,y)=d且x,y均在给定范围内的(x,y)的对数. F(d):满足d|gcd(x,y)且x,y均在给定范围内的(x,y)的对数. 反演后我们得到 f(x)=∑x|dμ(d/x)∗F(d) 由于序列给定,这里的F(d)我们可以通过枚举d,来…
题意: 已知\(N^2-3N+2=\sum_{d|N}f(d)\),求\(\sum_{i=1}^nf(i) \mod 1e9+7\),\(n\leq1e9\) 思路: 杜教筛基础题? 很显然这里已经设了一个\(F(n) = \sum_{d|n}f(d)\),那么由莫比乌斯反演可以得到\(f(n)=\sum_{d|n}\mu(d)F(\frac{n}{d})\). 然后卷积可以看出卷一个\(I\)比较好,则:\((f*g)(n)=\sum_{i=1}^nF(i)-\sum_{i=2}^nS(\lf…
正题 题目链接:https://ac.nowcoder.com/acm/contest/11174/F 题目大意 给出\(n,k\)求 \[\sum_{i_1=1}^n\sum_{i_2=1}^n...\sum_{i_k=1}^ngcd(f_{i_1},f_{i_2},...,f_{i_{k}}) \] 对\(10^9+9\)取模 其中\(f_i\)表示斐波那契数列的第\(i\)项 \(1\leq n,k\leq 10^8\) 解题思路 看上去就很莫比乌斯反演,首先把\(f\)提出来然后直接上莫…
GCD 题意:输入5个数a,b,c,d,k;(a = c = 1, 0 < b,d,k <= 100000);问有多少对a <= p <= b, c <= q <= d使得gcd(p,q) = k; 注:对于(p,q)和(q,p)只算一次: 思路:由于遍历朴素求两个数的gcd的时间复杂度为O(n^2*log(n)),朴素算法遍历搜索在判断累加,所以效率很低: 资料   NanoApe's Blog   ACdreamers 莫比乌斯反演:利用整与分之间的可逆来由整体利用…
点此看题面 大致题意: 让你求出\(\sum_{i=1}^n\sum_{j=1}^n\mu(gcd(i,j))\). 莫比乌斯反演 这种题目,一看就是莫比乌斯反演啊!(连莫比乌斯函数都有) 关于莫比乌斯反演,详见这篇博客:初学莫比乌斯反演. 推式子 下面让我们来推式子. 首先,我们采用解决这种问题的常用套路,来枚举\(gcd\),就能得到这样一个式子: \[\sum_{d=1}^n\sum_{i=1}^{\lfloor\frac nd\rfloor}\sum_{j=1}^{\lfloor\fra…
Mophues Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 327670/327670 K (Java/Others) Total Submission(s): 980    Accepted Submission(s): 376 Problem Description As we know, any positive integer C ( C >= 2 ) can be written as the multiply of…
用mu写lcm那道卡常卡成狗(然而最后也没卡过去,于是写一下gcd冷静一下 首先推一下式子 \[ \sum_{i=1}^{n}\sum_{j=1}^{n}gcd(i,j) \] \[ \sum_{i=1}^{n}\sum_{j=1}^{n}\sum_{d=1}^{n}[gcd(i,j)==d]d \] \[ \sum_{d=1}^{n}d\sum_{i=1}^{n}\sum_{j=1}^{n}[gcd(i,j)==d] \] \[ \sum_{d=1}^{n}d\sum_{i=1}^{\left…
题意简述 给你两个整数\(n\),\(k\),让你求出这个式子 \[ \sum_{a_1=1}^n \sum_{a_2=a_1}^n \sum_{a_3=a_2}^n \cdots \sum_{a_k=a_{k-1}}^n \left[ \gcd {(a_1,a_2,a_3\cdots,a_k)} = 1\right] \] 做法 对于\(\gcd\)进行莫比乌斯反演 \[ Ans = \sum_p \mu(p) \sum_{a_1=1}^n \sum_{a_2=a_1}^{\frac{n}{p…
题意简述 求出这个式子 \[ \sum_{i=1}^n\sum_{j=1}^n ij(i,j) \bmod p \] 做法 先用莫比乌斯反演拆一下式子 \[ \begin{split} \sum_{i=1}^n\sum_{j=1}^n ij(i,j)&=\sum_{d=1}^nd\sum_{i=1}^n\sum_{j=1}^n ij[(i,j)=d]\\ &=\sum_{d=1}^nd\sum_{i=1}^{\lfloor \frac{n}{d}\rfloor}\sum_{j=1}^{\l…
分析:简单的莫比乌斯反演 f[i]为k=i时的答案数 然后就很简单了 #include<iostream> #include<algorithm> #include<set> #include<vector> #include<queue> #include<cstdlib> #include<cstdio> #include<cstring> #include<cmath> using names…
http://poj.org/problem?id=3904   题意:给一些数,求在这些数中找出四个数互质的方案数.   莫比乌斯反演的式子有两种形式http://blog.csdn.net/outer_form/article/details/50588307 这里用的是第二种形式. 求出四个数的公约数为x的倍数的方案数,即可得到,四个数的公约数为x的方案数. 这里x为1. 代码 #include<cstdio> #include<cstring> #include<io…
Mophues \[ Time Limit: 10000 ms\quad Memory Limit: 262144 kB \] 题意 求出满足 \(gcd\left(a,b\right) = k\),其中\(1\leq a\leq n,1\leq b \leq m\)且 \(k\) 的因子数 \(\leq P\) 思路 \(g\left(x\right)\) 表示 \(gcd\left(a, b\right) | x\) 的对数 \(f\left(x\right)\) 表示 \(gcd\left…
Code Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem Description WLD likes playing with codes.One day he is writing a function.Howerver,his computer breaks down because the function is too powerful.He is ve…