【BZOJ】【2693】JZPTAB
莫比乌斯反演
PoPoQQQ讲义第5题,是BZOJ 2154的升级版(多次询问)
题解:http://blog.csdn.net/popoqqq/article/details/42078725
WA:应该输出(ans+P)%P……而不是ans
/**************************************************************
Problem: 2693
User: Tunix
Language: C++
Result: Accepted
Time:5128 ms
Memory:245416 kb
****************************************************************/ //BZOJ 2693
#include<cstdio>
#include<cstdlib>
#include<cstring>
#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; int getint(){
int v=,sign=; char ch=getchar();
while(ch<''||ch>'') {if (ch=='-') sign=-; ch=getchar();}
while(ch>=''&&ch<='') {v=v*+ch-''; ch=getchar();}
return v*=sign;
}
/*******************tamplate********************/
typedef long long LL;
const int N=1e7+,P=;
LL prime[N];
LL h[N],sum[N]={};
bool check[N]; void getmu(int n){
h[]=;
int tot=;
for(int i=;i<n;++i){
if (!check[i]){
prime[tot++]=i;
h[i]=(i-(LL)i*i)%P;
}
rep(j,tot){
if (i*prime[j]>n) break;
check[i*prime[j]]=;
if (i%prime[j]) h[i*prime[j]]=h[prime[j]]*h[i]%P;
else{
h[i*prime[j]]=(prime[j]*h[i])%P;
break;
}
}
}
F(i,,n-)
sum[i]=(sum[i-]+h[i])%P;
}
inline LL Sum(LL n,LL m){
LL re1=n*(n+)/%P,
re2=m*(m+)/%P;
return re1*re2%P;
}
int main(){
getmu(N-);
int T=getint();
LL n,m;
while(T--){
n=getint(); m=getint();
if (n>m) swap(n,m);
LL i,last,ans=;
for(i=;i<=n;i=last+){
last=min(n/(n/i),m/(m/i));
ans=(ans+Sum(n/i,m/i)*(sum[last]-sum[i-])%P)%P;
}
printf("%lld\n",(ans+P)%P);
}
return ;
}
2693: jzptab
Time Limit: 10 Sec Memory Limit: 512 MB
Submit: 539 Solved: 211
[Submit][Status][Discuss]
Description

Input
一个正整数T表示数据组数
接下来T行 每行两个正整数 表示N、M
Output
T行 每行一个整数 表示第i组数据的结果
Sample Input
4 5
Sample Output
HINT
T <= 10000
N, M<=10000000
HINT
Source
【BZOJ】【2693】JZPTAB的更多相关文章
- 【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 ...
随机推荐
- 虚拟机中Linux安装Tools
1. 插入光盘后将文件拷贝到常用放置软件的目录 2. 解压文件 3. 然后进入解压后的文件夹里找到安装文件进行安装(注意使用root权限安装) 4. 安装时也是一个交互的过程 5. 完成安装
- 【学习笔记】【C语言】指向结构体的指针
1.指向结构体的指针的定义 struct Student *p; 2.利用指针访问结构体的成员 1> (*p).成员名称 2> p->成员名称 3.代码 #include < ...
- 下拉框的选择跳转事件(jqure)
<select id="coupontype"> <option value="@CouponType.全部" href="@Url ...
- HTML特殊字符编码大全
HTML特殊字符编码大全:往网页中输入特殊字符,需在html代码中加入以&开头的字母组合或以&#开头的数字.下面就是以字母或数字表示的 特殊符号大全 ´ © © > > µ ...
- arcgis直连oracle
参数:service :sde:oracle10g(客户端的数据库版本)username:sdepassword:sde@s19(配置的网络连接名) 黄色背景为需要根据实际情况更改的参数内容.如更改为 ...
- CICS&&XA
CICS (Customer Information Control System) 是IBM 公司的强大主机交易服务器.集成平台,在全球C.C++.COBOL等交易中间件市场上占有绝大多数客户.CI ...
- 【转】asp.net mvc3 简单缓存实现sql依赖
asp.net mvc3 简单缓存实现sql依赖 议题 随 着网站的发展,大量用户访问流行内容和动态内容,这两个方面的因素会增加平均的载入时间,给Web服务器和数据库服务器造成大量的请求压力.而大 ...
- c++11: bind用法
原型: template< class R, class F, class... Args > bind( F&& f, Args&&... args ); ...
- SQL server数据库内置账户SA登录设置
SQL server数据库内置账户SA登录不了 设置SQL Server数据库给sa设置密码的时候 提示18456 解决步骤: 第二步:右击sa,选择属性: 第三步:点击状态选项卡:勾选授予 ...
- linux查看硬件信息
1,查看CPU信息:cat /proc/cpuinfo2,查看板卡信息:cat /proc/pci3,查看USB设备:cat /proc/bus/usb/devices4,查看PCI信息:lspci ...