题解 P4140 【奇数国 】】的更多相关文章

3813: 奇数国 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 748  Solved: 425[Submit][Status][Discuss] Description 在一片美丽的大陆上有100000个国家,记为1到100000.这里经济发达,有数不尽的账房,并且每个国家有一个银行.某大公司的领袖在这100000个银行开户时都存了3大洋,他惜财如命,因此会不时地派小弟GFS清点一些银行的存款或者让GFS改变某个银行的存款.该村子在财产上的求…
3813: 奇数国 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 736  Solved: 416[Submit][Status][Discuss] Description 在一片美丽的大陆上有100000个国家,记为1到100000.这里经济发达,有数不尽的账房,并且每个国家有一个银行.某大公司的领袖在这100000个银行开户时都存了3大洋,他惜财如命,因此会不时地派小弟GFS清点一些银行的存款或者让GFS改变某个银行的存款.该村子在财产上的求…
[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*=(…
3813: 奇数国 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 912  Solved: 508[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…
[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…
[题解]L 国的战斗续之多路出击 [P2129] 传送门: \(L\) 国的战斗续之多路出击 \([P2129]\) [题目描述] 给出 \(n\) 个坐标,\(m\) 个指令,指令处理顺序应是从后往前. 求最终的 \(n\) 个坐标. [输入] 第一行两个整数 \(n,m\) . 接下来 \(n\) 行,每行两个整数 \(x_i,y_i\) 表示第 \(i\) 个坐标. 然后 \(m\) 行,每行首先一个字符 \(C\), \((1).\) 若\(C\)为 \(\text{'m'}\),则紧跟…
HYSBZ - 3813奇数国 中文题,巨苟题,巨无敌苟!!首先是关于不相冲数,也就是互质数的处理,欧拉函数是可以求出互质数,但是这里的product非常大,最小都2100000,这是不可能实现的.所以我们要求互质数的话,得用到所有金额都用60个素数表示的这个条件.也就是x=p1a1xp2a2x...p60a60表示,pi是第i个素数,ai是对应的指数,这就变成了互质素求欧拉函数,可以先了解一下欧拉函数,引用一下境外大佬的博客欧拉函数的讲解.我们需要用到这一条 p为质数 1. phi(p)=p-…
题目链接 首先,按照题意,把前$60$个素数打出来$[2$ $-$ $281]$. 因为只有$60$个,再加上本宝宝极其懒得写线性筛于是每一个都$O(\sqrt{n})$暴力筛就好了. 代码如下: #include<iostream> #include<cstdio> #include<algorithm> using namespace std; int n; int main() { // freopen("1.txt","w"…
Description 有一个长为 \(n\) 的序列,保证序列元素不超过 \(10^6\) 且其质因数集是前60个质数集合的子集.初始时全部都是 \(3\),有 \(m\) 次操作,要么要求支持单点修改,要么要求查询区间 \([l,~r]\) 的区间积 \(x\) 的欧拉函数值 \(\phi(x)\) 对一个质数取模的结果. Limitation \(1 \leq n,~m \leq 10^5\) Solution 考虑一个公式 \[\phi(x) = \prod_{i = 1}^{60} p…