2694: Lcm

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 422  Solved: 220
[Submit][Status][Discuss]

Description

对于任意的>1的n gcd(a, b)不是n^2的倍数
也就是说gcd(a, b)没有一个因子的次数>=2

Input

一个正整数T表示数据组数
接下来T行 每行两个正整数 表示N、M

Output

T行 每行一个整数 表示第i组数据的结果

Sample Input

4
2 4
3 3
6 5
8 3

Sample Output

24
28
233
178

HINT

HINT

T <= 10000

N, M<=4000000

感谢DZM大爷借我权限号一用2333
然后发现 第三个条件 就是要求gcd没有平方因子,所以写成 *μ^2(gcd(a,b)) 就行了,然后就是一个积性函数题了、、
#include<bits/stdc++.h>
#define ll long long
const int maxn=4000000;
const int ha=1<<30;
using namespace std;
int zs[maxn/5],t=0,T,n,m;
int low[maxn+5],f[maxn+5];
bool v[maxn+5];inline int add(int x,int y){x+=y;return x>=ha?x-ha:x;
}inline void init(){low[1]=f[1]=1;for(int i=2;i<=maxn;i++){if(!v[i]) zs[++t]=i,low[i]=i,f[i]=1-i;for(int j=1,u;j<=t&&(u=zs[j]*i)<=maxn;j++){v[u]=1;if(!(i%zs[j])){low[u]=low[i]*zs[j];if(!v[low[i]]) f[u]=f[i/low[i]]*-low[i];else f[u]=0; break;}low[u]=zs[j];f[u]=f[i]*f[zs[j]];}}for(int i=1;i<=maxn;i++) f[i]=add(add(f[i],ha)*(ll)i%ha,f[i-1]);
}inline int solve(){int an=0;if(n>m) swap(n,m);for(int i=1,nx,ny,j;i<=n;i=j+1){nx=n/i,ny=m/i,j=min(n/nx,m/ny);an=add(an,((nx+1)*(ll)nx>>1)%ha*(ll)(((ny+1)*(ll)ny>>1)%ha)%ha*(ll)add(f[j],ha-f[i-1])%ha);}return an;
}int main(){init();scanf("%d",&T);while(T--){scanf("%d%d",&n,&m);printf("%d\n",solve());}return 0;
}

  

转载于:https://www.cnblogs.com/JYYHH/p/8578084.html

bzoj 2694: Lcm相关推荐

  1. bzoj 3114: Uva12546 Lcm Pair Sum

    3114: Uva12546 Lcm Pair Sum Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 95  Solved: 53 [Submit][ ...

  2. BZOJ 1878 HH的项链

    莫队 还是一道模板..不过洛谷数据加强了,必须要奇偶性排序+吸氧才能过,BZOJ可以直接过的- #include <bits/stdc++.h> #define INF 0x3f3f3f3 ...

  3. 【BZOJ】【2154】Crash的数字表格

    莫比乌斯反演 PoPoQQQ讲义第4题 题解:http://www.cnblogs.com/jianglangcaijin/archive/2013/11/27/3446169.html 感觉两次sq ...

  4. BZOJ 1500 维修数列

    Splay序列操作的大模板题 这个真的是噩梦..调了整整一个晚上,可以说完全被榨干了orz.. 因为我的splay写的实在是太丑了,手动加的哨兵节点,开头忘记pushup了,找了一晚上才找到... 还 ...

  5. BZOJ 2226 [Spoj 5971] LCMSum 最大公约数之和 | 数论

    BZOJ 2226 [Spoj 5971] LCMSum 这道题和上一道题十分类似. \[\begin{align*} \sum_{i = 1}^{n}\operatorname{LCM}(i, n) ...

  6. 贝尔数C语言,bzoj 3501 PA2008 Cliquers Strike Back——贝尔数

    用贝尔三角形 p^2 地预处理 p 以内的贝尔数.可以模(mod-1)(它是每个分解下的质因子的倍数,所以不影响分开算的时候). 用公式:\( Bell[n+p^{m}]=m*Bell[n]+Bell ...

  7. BZOJ.1558.[JSOI2009]等差数列(线段树 差分)

    BZOJ 洛谷 首先可以把原序列\(A_i\)转化成差分序列\(B_i\)去做. 这样对于区间加一个等差数列\((l,r,a_0,d)\),就可以转化为\(B_{l-1}\)+=\(a_0\),\(B ...

  8. Pairs Forming LCM LightOJ - 1236

    Pairs Forming LCM LightOJ - 1236 题意 问共有多少组数的最大公约数是n 分析 组合数学 ,唯一分解定理 参考代码 int Prime[670000]; const in ...

  9. 数论(一)——素数,GCD,LCM

    这是一个数论系列:) 一.素数 ×费马小定理 Theorem: 设 p 是一个素数,a 是一个整数且不是 p 的倍数,那么 很遗憾,费马小定理的逆定理是不成立的.对 a = 2,满足的非素数 n 是存 ...

  10. S-T平面图中利用最短路求最小割(BZOJ 1001)

    BZOJ 1001: [BeiJing2006]狼抓兔子 最小割 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1001 现在小朋友们最喜欢 ...

最新文章

  1. 刷题_thinkinginjava_吸血鬼数字
  2. 公司内部将多国语言key转换成中文javaScript
  3. [maven] settings 文件 本地maven仓库
  4. 2016 ICPC World Finals -Ceiling Function
  5. 随便写写的正则表达式
  6. Codeforces Round #704 (Div. 2) E. Almost Fault-Tolerant Database 思维
  7. 升级bios_华硕400系主板升级BIOS:静待11代酷睿CPU
  8. java反射的使用概览
  9. 双非硕士阿里大数据开发面经(已拿offer)
  10. Android App性能优化十技巧
  11. Linux下手动挂载新增磁盘
  12. Elasticsearch5.x 升级
  13. 微软MCITP系列课程(二四)利用组策略部署软件
  14. 你要如何衡量你的人生
  15. MySQL复制之gtid_purged与gtid_executed
  16. R语言学习笔记:使用reshape2包实现整合与重构
  17. iPhone无法充电小技巧
  18. 可视化篇:Echarts2.0引入百度地图
  19. 图算法入门4:活动网络-AOE网络和关键路径(critical path)
  20. eve-ng学习笔记

热门文章

  1. 设计模式之三:装饰者模式(简单实现(星巴兹咖啡))
  2. ad logon hour
  3. 09年让你笑到肚疼的签名
  4. 汉字的字向量、词向量和表示学习(中文词向量)
  5. Surprise官方文档练习
  6. Factorization Mechanism
  7. 机器学习面试- 推荐系统的常用算法
  8. 论文赏析[EMNLP19]用控制任务来设计并解释探测任务
  9. bug6-ResourceExhaustedError: OOM when allocating tensor with shape[512,15,15,128]
  10. 为什么这本搜索引擎营销的书畅销呢?