P3601 签到题】的更多相关文章

链接P3601 签到题 求\[\sum_{i=l}^{r} i-\phi_i\] \(l,r\leq 10^{12},\ r-l\leq 10^6\) 杜教筛似乎做不了. 然后再看\(l\),\(r\)的差很小,所以可以考虑枚举然后求和. 先筛出\(10^6\)中所有的质数,那么对于区间内每一个数,最多只会存在一个大于\(10^6\)的质数. 所以枚举每一个质数,算出这一个质数对区间内的\(\phi\)所贡献,最后再特判一下大于\(10^6\)即可. 复杂度为\(O(\sqrt r*logr+(…
题目背景 这是一道签到题! 建议做题之前仔细阅读数据范围! 题目描述 我们定义一个函数:qiandao(x)为小于等于x的数中与x不互质的数的个数. 这题作为签到题,给出l和r,要求求. 输入输出格式 输入格式: 一行两个整数,l.r. 输出格式: 一行一个整数表示答案. 输入输出样例 输入样例#1: 233 2333 输出样例#1: 1056499 输入样例#2: 2333333333 2333666666 输出样例#2: 153096296 说明 对于30%的数据,. 对于60%的数据,.…
题目背景 这是一道签到题! 建议做题之前仔细阅读数据范围! 题目描述 我们定义一个函数:qiandao(x)为小于等于x的数中与x不互质的数的个数. 这题作为签到题,给出l和r,要求求. 输入输出格式 输入格式: 一行两个整数,l.r. 输出格式: 一行一个整数表示答案. 输入输出样例 输入样例#1: 233 2333 输出样例#1: 1056499 输入样例#2: 2333333333 2333666666 输出样例#2: 153096296 说明 对于30%的数据,. 对于60%的数据,.…
https://www.luogu.org/problemnew/show/P3601 一道关于欧拉函数的题. 读完题目以后我们知道所谓的$aindao(x)=x- \phi (x) $. 对于x小的情况下我们当然可以用 枚举因子或者线型筛求得,然而x打了以后就数组装不下了. 注意区间大小,我们完全可以只求这一部分区间内的x的$ \phi (x) $,数字移一下位置就好了. 然而求没一个数的欧拉函数值时我们只用到了,小于等于$\sqrt x$的质因子(就想线性筛一样),所以我们只需要晒出小于$\…
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! 题目链接:P3601 正解:线性筛+欧拉函数 解题报告: 我一看到这道题的第一反应居然是杜教筛,真是没救了… 显然答案就是每个数自己-他的欧拉函数,这个东西的和. 考虑区间范围不大,那么我们没必要把$[1,r]$整个区间的欧拉函数做出来. 因为大于$\sq…
思路 注意到求的qiandao(x)就是\(x-\phi(x)\) 但是\(l,r\le 10^{12}\),所以不能直接杜教筛 但是\(r-l\le 10^{6}\),所以可以先筛出1e6(\(\sqrt{10^{12}}\))内的素数,再用这些素数更新l~r的phi,最后特殊处理大于1e6的素因子(只有一个) 代码 #include <cstdio> #include <cstring> #include <algorithm> #define int long l…
题目描述 给出l,r,要求求出\(\sum_{i = l}^r (i - phi[i]) mod 666623333\) \(1\leq l\leq r\leq 10^{12}\),\(r - l \leq 10^6\) Solution 对于一个数n,肯定有至少一个小于等于$\sqrt n $的(质)因子.因为 \(r \leq 10^{12}\),所以可以先预处理\(10^{6}\)以内的素数, 然后利用r - l比较小的条件,一个一个数筛一遍就是了.用每个质因子去筛l - r之间的数,同时…
#184. 「2019冬令营提高组」签到题 每次询问接近O(1).......考虑贪心 怎么贪心呢? 对于相邻的两个数,我们要保证异或x后单调不降 我们找到两个数二进制上最高的相异位 当左边的数相异位为0,右边为1时,显然x的该位只能为0,否则异或后不符条件. 当左边的数相异位为1,右边为0时,x的该位就必须为1,也就是必须异或一次改变大小关系. 对于剩下的位......取0就行辣 当某位既要取1又要取0,显然就是不符合条件,就是无解了 每次修改的时候把上一位的数据清掉就得了. #include…
一.签到题 根据提示直接加群在群公告里就能找到~…
说好的签到题呢qwq....怎么我签到题都不会啊qwq 之后看了bsgs才发现貌似不是那么那么难fake!!什么东西... 先贴上部分分做法(也就是枚举1的个数,然后每一步都进行取模(这和最后取模结果一样,但是可以处理更大的整数),判断是否符合题意.这个很好想也很好打,得分70分): #include<iostream> #include<cstdio> #include<cstring> using namespace std; long long k,m; void…