51nod 1678 lyk与gcd | 容斥原理】的更多相关文章

51nod 200题辣ψ(`∇´)ψ !庆祝! 51nod 1678 lyk与gcd | 容斥原理 题面 这天,lyk又和gcd杠上了. 它拥有一个n个数的数列,它想实现两种操作. 1:将 ai 改为b. 2:给定一个数i,求所有 gcd(i,j)=1 时的 aj 的总和. Input 第一行两个数n,Q(1<=n,Q<=100000). 接下来一行n个数表示ai(1<=ai<=10^4). 接下来Q行,每行先读入一个数A(1<=A<=2). 若A=1,表示第一种操作,…
题面 传送门 题解 和这题差不多 //minamoto #include<bits/stdc++.h> #define R register #define pb push_back #define inline __inline__ __attribute__((always_inline)) #define fp(i,a,b) for(R int i=(a),I=(b)+1;i<I;++i) #define fd(i,a,b) for(R int i=(a),I=(b)-1;i>…
1678 lyk与gcd  基准时间限制:2 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  关注 这天,lyk又和gcd杠上了. 它拥有一个n个数的数列,它想实现两种操作. 1:将  ai 改为b. 2:给定一个数i,求所有 gcd(i,j)=1 时的  aj  的总和. Input 第一行两个数n,Q(1<=n,Q<=100000). 接下来一行n个数表示ai(1<=ai<=10^4). 接下来Q行,每行先读入一个数A(1<=A<=2).…
1678 lyk与gcd 基准时间限制:2 秒 空间限制:131072 KB 这天,lyk又和gcd杠上了.它拥有一个n个数的数列,它想实现两种操作. 1:将  ai 改为b.2:给定一个数i,求所有 gcd(i,j)=1 时的  aj  的总和. Input 第一行两个数n,Q(1<=n,Q<=100000). 接下来一行n个数表示ai(1<=ai<=10^4). 接下来Q行,每行先读入一个数A(1<=A<=2). 若A=1,表示第一种操作,紧接着两个数i和b.(1&…
1678 lyk与gcd 基准时间限制:2 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 这天,lyk又和gcd杠上了.它拥有一个n个数的数列,它想实现两种操作. 1:将  ai 改为b.2:给定一个数i,求所有 gcd(i,j)=1 时的  aj  的总和. Input 第一行两个数n,Q(1<=n,Q<=100000). 接下来一行n个数表示ai(1<=ai<=10^4). 接下来Q行,每行先读入一个数A(1<=A<=2). 若A=1,表示第一种…
1678 lyk与gcd 基准时间限制:2 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 这天,lyk又和gcd杠上了.它拥有一个n个数的数列,它想实现两种操作. 1:将  ai 改为b.2:给定一个数i,求所有 gcd(i,j)=1 时的  aj  的总和. Input 第一行两个数n,Q(1<=n,Q<=100000). 接下来一行n个数表示ai(1<=ai<=10^4). 接下来Q行,每行先读入一个数A(1<=A<=2). 若A=1,表示第一种…
容斥定理所以可以用莫比乌斯函数来搞.逆向思维答案等于总和减去和他互质的.那么设f[i]=∑a[j] i|j.ans[i]=sum- ∑mo[j]*f[j] 跟bzoj2440那道题挺像的都是利用莫比乌斯函数来做容斥定理. 结果因为修改的时候只修改<sqrt(n)的一直WA...吃枣药丸... #include<cstdio> #include<cstring> #include<cctype> #include<algorithm> #include&…
1486 大大走格子 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 160 难度:6级算法题   有一个h行w列的棋盘,里面有一些格子是不能走的,现在要求从左上角走到右下角的方案数. Input 单组测试数据. 第一行有三个整数h, w, n(1 ≤ h, w ≤ 10^5, 1 ≤ n ≤ 2000),表示棋盘的行和列,还有不能走的格子的数目. 接下来n行描述格子,第i行有两个整数ri, ci (1 ≤ ri ≤ h, 1 ≤ ci ≤ w),表…
http://acm.hdu.edu.cn/showproblem.php?pid=1695 翻译题目:给五个数a,b,c,d,k,其中恒a=c=1,x∈[a,b],y∈[c,d],求有多少组(x,y)满足GCD(x,y)=k?  //(x,y)和(y,x)视作同一个 题解:既然是要x,y的最大公约数为k,那说明x/k和y/k是互质的,只需在[1,b/k]和[1,d/k]范围内找到适合的x,y即可. 特判:当k等于0时,显然没有符合的,输出结果0: #include<iostream> #in…
Given 5 integers: a, b, c, d, k, you're to find x in a...b, y in c...d that GCD(x, y) = k. GCD(x, y) means the greatest common divisor of x and y. Since the number of choices may be very large, you're only required to output the total number of diffe…