BZOJ 3309: DZY Loves Math 莫比乌斯反演+打表
2024-10-10 07:00:08
有一个神奇的技巧——打表
code:
#include <bits/stdc++.h>
#define N 10000007
#define ll long long
#define setIO(s) freopen(s".in","r",stdin)
using namespace std;
int cnt;
int vis[N],prime[N],g[N],mu[N],nump[N],minp[N],qp[N];
void Initialize()
{
int i,j;
mu[1]=1;
for(i=2;i<N;++i)
{
if(!vis[i])
{
prime[++cnt]=i;
nump[i]=1;
minp[i]=i;
qp[i]=i;
g[i]=1;
}
for(j=1;j<=cnt&&prime[j]*i<N;++j)
{
vis[i*prime[j]]=1;
int k=i*prime[j];
if(i%prime[j])
{
nump[k]=1;
qp[k]=minp[k]=prime[j];
if(nump[i]==1) g[k]=-g[i];
}
else
{
nump[k]=nump[i]+1;
minp[k]=prime[j];
qp[k]=qp[i]*prime[j];
if(k==qp[k]) g[k]=1;
else if(nump[k]==nump[k/qp[k]]) g[k]=-g[k/qp[k]];
break;
}
}
}
for(i=2;i<N;++i) g[i]+=g[i-1];
}
void solve(int a,int b)
{
if(a>b) swap(a,b);
int i,j;
ll ans=0ll;
for(i=1;i<=a;i=j+1)
{
j=min(a/(a/i),b/(b/i));
ans=ans+(ll)(a/i)*(b/i)*(g[j]-g[i-1]);
}
printf("%lld\n",ans);
}
int main()
{
// setIO("input");
Initialize();
int i,j,T;
scanf("%d",&T);
while(T--)
{
int a,b;
scanf("%d%d",&a,&b);
solve(a,b);
}
return 0;
}
最新文章
- APP多版本共存,服务端如何兼容?
- const的位置与区别
- JavaScript基础插曲---apply,call和URL编码等方法
- Python基础2- Hello,world
- Java Day 15
- [原创]C语言利用pcre正则表达式库
- Ombrophobic Bovines
- 第1章 软件测试基本概念(Week1,3月3日)
- Android网络开发之OkHttp--基本用法GET
- python scrapy 抓取脚本之家文章(scrapy 入门使用简介)
- vue-用Vue-cli从零开始搭建一个Vue项目
- ERROR: While executing gem … (Gem::RemoteFetcher::FetchError)
- ES6 学习笔记(整理一遍阮一峰大神得入门文档,纯自己理解使用)
- ASP.NET MVC 3.0 参考源码索引
- 树形dp(C - Choosing Capital for Treeland CodeForces - 219D )
- ZT 感触的屌丝职场记 投递人 itwriter 发布于 2013-05-27 09:21 评论(18) 有3402人阅读 原文链接 [收藏] &#171; &#187; 作者@幻想哥呀幻想哥 有一位屌丝男,从小抱着报效祖国的理想上了大学,毕业后干了 IT 行业,高中那时候看文汇报说,搞 IT 的在上
- 在Jboss中使用Quartz
- [codeforces934E]A Colourful Prospect
- LINQ 学习路程 -- 开篇
- kernel thread vs user thread
热门文章
- Python之路【第三十篇】:django 模型层-多表关系
- SQL Join连接大小表在前在后的重要性(小表在前提高执行效率)
- 【1】【leetcode-5】最长回文子串
- The driver is automatically registered via the SPI and manual loading of the driver class....
- dump net core lldb 安装
- Vue项目整体架构记要
- vue 属性props定义方法
- slf4j的正确使用
- Spring的核心机制:依赖注入
- unity shader入门(二)语义,结构体,逐顶点光照