gym 101982 B题 Coprime Integers】的更多相关文章

题目链接:https://codeforces.com/gym/101982/attachments 贴一张图吧: 题目意思就是给出四个数字,a,b,c,d,分别代表两个区间[a,b],[c,d],从这两个区间里面分别拿一个数字组成(x,y),问x和y互质的组合有多少种. 这道题目好像要用莫比乌斯反演,但是目前没有了解过这个知识点,后续会补上,我用的是打表+容斥定理做的,相比于上一种方法,耗费的时间可能会多很多.我亲测是600到800ms,所以还是很有必要学莫比乌斯反演的. 接下来讲我的思路:两…
题目链接:http://codeforces.com/gym/101982/attachments 题目大意:有区间[a,b]和区间[c,d],求gcd(x,y)=1,其中x属于[a,b],y属于[c,d],求这样的x,y有多少对. 解题思路: 第一种反演思路: 把下界变换一下 代码: #include<iostream> #include<cstdio> using namespace std; typedef long long ll; ; ll a,b,c,d,mu[maxn…
题面 题意:给你 abcd(1e7),求a<=x<=b,c<=y<=d的,gcd(x,y)=1的数量 题解:经典题目,求从1的到n中选x,从1到m中选y的,gcd(x,y)=k的可以看hdu1695 ask(x,y)表示从1到n中选n,从1到m中选y的话 ans=ask(b,d)-ask(b,c-1)-ask(a-1,d)+ask(a-1,c-1) #include<bits/stdc++.h> using namespace std; typedef long lon…
题目链接:https://cn.vjudge.net/problem/Gym-101982B 题目大意: 给你(a,b)和(c,d)这两个区间,然后问你这两个区间中互素的对数是多少. 具体思路:和我上一篇写莫比乌斯入门的博客的思路一样,不过就是加了下限,原来的那一篇的下限是1,现在这一篇的下限是题目给的数.所以这一块就需要考虑到去重. 第一步,我们首先确定一个较小的区间,假设让第一个区间是上限最小的,然后我们当前就有两个区间(a,b)和(c,d) 此时(b<d). 我们首先算(1,b)和(1,d…
不写了,10年以后再回来写. http://codeforces.com/gym/100221/attachments H题…
F. Two Points time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output There are two points (x1, y1) and (x2, y2) on the plane. They move with the velocities (vx1, vy1) and (vx2, vy2). Find the min…
题目链接:https://odzkskevi.qnssl.com/1110bec98ca57b5ce6aec79b210d2849?v=1490453767 题解: 这种方法大概跟离散化扯上点关系:首先直接用数组去接这组输入,然后对数组进行排序.之后把相等的数并在一起,并统计他们的个数,这样就重新得到两个数组,一个记录数字val,另一个记录个数sum.然后计算就可以了. 代码如下: #include<iostream> #include<cstdio> #include<cs…
链接:http://codeforces.com/gym/101982/attachments 思路: 问被覆盖次数为奇数次的矩阵的面积并 扫描线求矩阵面积并我们是上界赋为-1,下界赋为1,因为要求覆盖次数为奇数次的,我们直接上下界都赋值为1,然后每次区间更新的时候对这段区间取异或就好了 实现代码; #include<bits/stdc++.h> using namespace std; #define ll long long #define lson l,m,rt<<1 #de…
http://codeforces.com/gym/100735 D题 直接暴力枚举 感觉这道题数据有点问题 为什么要先排下序才能过?不懂.. #include <stdio.h> #include <math.h> #include <string.h> #include <stdlib.h> #include <iostream> #include <sstream> #include <algorithm> #inc…
题目链接:https://codeforces.com/gym/101982/attachments 要你求覆盖奇数次的矩形面积并,每次更新时减去原先的值即可实现奇数次有效,下推时为保证线段长度不变左儿子的值为x[mid]-x[l]再减原来的值,右儿子的值为x[r]-x[mid]再减原来的值 #include<iostream> #include<algorithm> using namespace std; #define ll long long #define maxn 20…