【BZOJ】【2694】Lcm
数论/莫比乌斯反演/线性筛
题解:http://www.cnblogs.com/zyfzyf/p/4218176.html
JZPTAB的加强版?感觉线性筛好像还是不怎么会啊……sad
题目记下来,回头再复习复习
/**************************************************************
Problem: 2694
User: Tunix
Language: C++
Result: Accepted
Time:1868 ms
Memory:52052 kb
****************************************************************/ //BZOJ 2694
#include<vector>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#define rep(i,n) for(int i=0;i<n;++i)
#define F(i,j,n) for(int i=j;i<=n;++i)
#define D(i,j,n) for(int i=j;i>=n;--i)
using namespace std;
typedef long long LL;
inline int getint(){
int r=,v=; char ch=getchar();
for(;!isdigit(ch);ch=getchar()) if (ch=='-') r=-;
for(; isdigit(ch);ch=getchar()) v=v*-''+ch;
return r*v;
}
const int N=4e6+;
/*******************template********************/ int mu[N],prime[N],g[N],tot;
bool check[N];
void getmu(){
int n=N-;
g[]=;
F(i,,n){
if (!check[i]){
prime[++tot]=i;
g[i]=i-i*i;
}
F(j,,tot){
int k=i*prime[j];
if (k>n) break;
check[k]=;
if (i%prime[j]) g[k]=g[i]*g[prime[j]];
else{
int t=i/prime[j];
if (t%prime[j]==) g[k]=;
else g[k]=-g[t]*prime[j]*prime[j]*prime[j];
break;
}
}
}
F(i,,n) g[i]+=g[i-];
}
inline int sum(int n,int m){
return n*(n+)*m*(m+)/;
}
int main(){
#ifndef ONLINE_JUDGE
freopen("2694.in","r",stdin);
freopen("2694.out","w",stdout);
#endif
getmu();
int T=getint();
while(T--){
int n=getint(),m=getint(),ans=;
if (n>m) swap(n,m);
for(int i=,next;i<=n;i=next+){
next=min(n/(n/i),m/(m/i));
ans+=sum(n/i,m/i)*(g[next]-g[i-]);
}
printf("%d\n",ans&);
}
return ;
}
2694: Lcm
Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 247 Solved: 105
[Submit][Status][Discuss]
Description

也就是说gcd(a, b)没有一个因子的次数>=2
Input
Output
Sample Input
2 4
3 3
6 5
8 3
Sample Output
28
233
178
HINT
HINT
T <= 10000
N, M<=4000000
Source
【BZOJ】【2694】Lcm的更多相关文章
- 【Bzoj 1835 基站选址】
基站选址的区间里隐藏着DP优化的机密…… 分析: 不论是做过乘积最大还是石子合并,或者是其他的入门级别的区间DP题目的人呐,大米并认为读题后就能够轻松得出一个简洁明了的Dp转移方程. ...
- 【BZOJ 2744 朋友圈】
Time Limit: 30 Sec Memory Limit: 128 MBSubmit: 1570 Solved: 532[Submit][Status][Discuss] Descripti ...
- 【BZOJ 5038 不打兔子】
Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 22 Solved: 8[Submit][Status][Discuss] Description 勤 ...
- 【BZOJ 1088 扫雷Mine】模拟
http://www.lydsy.com/JudgeOnline/problem.php?id=1088 2*N的扫雷棋盘,第二列的值a[i]记录第 i 个格子和它8连通的格子里面雷的数目. 第一列的 ...
- 【BZOJ做题记录】07.07~?
在NOI一周前重开一个坑 最后更新时间:7.08 07:38 7.06 下午做的几道CQOI题: BZOJ1257: [CQOI2007]余数之和sum:把k mod i写成k-k/i*i然后分段求后 ...
- 【bzoj5050】【bzoj九月月赛H】建造摩天楼
讲个笑话,这个题很休闲的. 大概是这样的,昨天看到这个题,第一眼星际把题目看反了然后感觉这是个傻逼题. 后来发现不对,这个修改一次的影响是很多的,可能导致一个数突然可以被改,也可能导致一个数不能被改. ...
- 【BZOJ 4151 The Cave】
Time Limit: 5 Sec Memory Limit: 256 MBSec Special JudgeSubmit: 293 Solved: 144[Submit][Status][Di ...
- 【BZOJ 2458 最小三角形】
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1551 Solved: 549[Submit][Status][Discuss] Descripti ...
- 【BZOJ 5000 OI树】
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 107 Solved: 64[Submit][Status][Discuss] Description ...
- 【BZOJ 5047 空间传送装置】
Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 282 Solved: 121[Submit][Status][Discuss] Descriptio ...
随机推荐
- 三 oracle 用户管理一
一.创建用户概述:在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用.create user 用户名 identified by 密码; ...
- Docker简介与安装(一)
Docker简介 Docker 是 Docker.Inc 公司开源的一个基于 LXC技术之上构建的Container容器引擎, 源代码托管在 GitHub 上, 基于Go语言并遵从Apache2.0协 ...
- RabbitMQ路由类型
关于RabbitMQ的Exchange类型 参考地址:<RabbitMQ学习系列(四): 几种Exchange 模式> github地址:https://github.com/ChenWe ...
- PHP反序列漏洞学习
0x00 序列化和反序列化 在PHP中,序列化和反序列化对应的函数分别为serialize()和unserialize(). 序列化:serialize()将对象转换为字符串以便存储传输的一种方式. ...
- [leetcode greedy]55. Jump Game
Given an array of non-negative integers, you are initially positioned at the first index of the arra ...
- poj2676(数独)
也是一个简单剪枝的dfs.记录所有为0的位置,依次填写,当发现某个空格可选的填写数字已经没有时,说明该支路无效,剪掉. 不算是一个难题吧,但是还是花了不少时间,问题主要出在细节上,行列坐标反了.3乘3 ...
- 你见过这些JavaScript的陷阱吗?
一.成员操作符 Number.prototype.testFn=function () { console.log(this<0, this.valueOf()); } var num = -1 ...
- spring4声明式事务—02 xml配置方式
1.配置普通的 controller,service ,dao 的bean. <!-- 配置 dao ,service --> <bean id="bookShopDao& ...
- 【转】高效率编辑器VIM
最近实习的时候需要在服务器上做Debug,不得不用到vim的相关操作.以前对vim这种被码农无数赞扬的神器望而却步,但今天试了之后感觉还是不错的.以后争取少用鼠标,少用insert模式. 这是从网上看 ...
- C# 序列化简单格式XML
问师傅反序列化和序列化到底是什么, 然后师傅鄙视一下我的智商,让我做个反序列化解析XML. 一边听着师傅在旁边跟女朋友打电话收到暴击伤害,一边写,搞了一个半小时. XML文件: <?xml ve ...