BZOJ3813: 奇数国】的更多相关文章

3813: 奇数国 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 912  Solved: 508[Submit][Status][Discuss] Description 在一片美丽的大陆上有100000个国家,记为1到100000.这里经济发达,有数不尽的账房,并且每个国家有一个银行.某大公司的领袖在这100000个银行开户时都存了3大洋,他惜财如命,因此会不时地派小弟GFS清点一些银行的存款或者让GFS改变某个银行的存款.该村子在财产上的求…
传送门 欧拉函数+线段树 因为只有60个素数,所以把状态压成long long的形式.用线段树维护区间和和区间和中有多少个质数.然后xjb搞搞就行了,具体参见代码. //BZOJ 3813 //by Cydiater //2016.10.10 #include <iostream> #include <cstdlib> #include <cstdio> #include <cmath> #include <queue> #include <…
题面 传送门 思路 这题目是真的难读......阅读理解题啊...... 但是理解了以后就发现,题目等价于: 给你一个区间,支持单点修改,以及查询一段区间的乘积的欧拉函数值,这个答案对19961993取模 这里是欧拉函数的原因显然,题目中的那个不相冲实际上就是扩展欧几里得里面的那个定理,要满足不相冲(也就是方程有解),$product$和$number$必须互质 序列当中,每个元素大小不超过1e6,质因数都是前60个 那么我们显然可以开一棵线段树来维护这个区间乘积,但是怎么处理欧拉函数呢?$O(…
[BZOJ3813]奇数国 Description 给定一个序列,每次改变一个位置的数,或是询问一段区间的数的乘积的phi值.每个数都可以表示成前60个质数的若干次方的乘积. Sample Input 6 0 1 3 1 1 5 0 1 3 1 1 7 0 1 3 0 2 3 Sample Output 18 24 36 6 HINT x≤100000,当ai=0时0≤ci−bi≤100000 题解:显然我们可以先求出区间乘积,然后判断一下每个质数是否在其中出现过即可,如果出现过,则ans*=(…
[bzoj3813]: 奇数国 题意:给定一个序列,每个元素可以分解为最小的60个素数的形式.(x=p1^k1*p2^k2*......p60^k60)(p1=2,p2=3,…,p60=281) 支持单点修改,查询一段区间的积的欧拉函数 mod 19961993(是一个质数). 线段树维护区间积x,bitset b[i]记录第i个素数是否存在. 预处理inv[i]=(p[i]-1)/p[i] mod 19961993 ans=x*inv[i] (b[i]==1) /* http://www.cn…
3813: 奇数国 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 736  Solved: 416[Submit][Status][Discuss] Description 在一片美丽的大陆上有100000个国家,记为1到100000.这里经济发达,有数不尽的账房,并且每个国家有一个银行.某大公司的领袖在这100000个银行开户时都存了3大洋,他惜财如命,因此会不时地派小弟GFS清点一些银行的存款或者让GFS改变某个银行的存款.该村子在财产上的求…
#38. [清华集训2014]奇数国 思路: 题目中的number与product不想冲: 即为number与product互素: 所以,求phi(product)即可: 除一个数等同于在模的意义下乘以一个数的逆元: 代码: #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define maxn 100005…
3813: 奇数国 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 748  Solved: 425[Submit][Status][Discuss] Description 在一片美丽的大陆上有100000个国家,记为1到100000.这里经济发达,有数不尽的账房,并且每个国家有一个银行.某大公司的领袖在这100000个银行开户时都存了3大洋,他惜财如命,因此会不时地派小弟GFS清点一些银行的存款或者让GFS改变某个银行的存款.该村子在财产上的求…
HYSBZ - 3813奇数国 中文题,巨苟题,巨无敌苟!!首先是关于不相冲数,也就是互质数的处理,欧拉函数是可以求出互质数,但是这里的product非常大,最小都2100000,这是不可能实现的.所以我们要求互质数的话,得用到所有金额都用60个素数表示的这个条件.也就是x=p1a1xp2a2x...p60a60表示,pi是第i个素数,ai是对应的指数,这就变成了互质素求欧拉函数,可以先了解一下欧拉函数,引用一下境外大佬的博客欧拉函数的讲解.我们需要用到这一条 p为质数 1. phi(p)=p-…
题目描述 给你一个长度为\(n\)的数列,第\(i\)个数为\(a_i\).每个数的质因子都只有前\(60\)个质数.有\(q\)个询问,每次给你\(l,r\),求\(\varphi(\prod_{i=l}^ra_i)\) 模数为\(19961993\),是个质数 \(n=100000,q\leq 100000\) 题解 水题 \[ \phi(x)=x\prod_{p_i|x}(1-\frac1{p_i}) \] 用线段树维护区间乘积和这个区间的乘积的质因子(每个质数有没有出现) 然后乱搞 时间…