【bzoj3994】[SDOI2015]约数个数和 莫比乌斯反演

题目描述

设d(x)为x的约数个数,给定N、M,求  

输入

输入文件包含多组测试数据。

第一行,一个整数T,表示测试数据的组数。
接下来的T行,每行两个整数N、M。

输出

T行,每行一个整数,表示你所求的答案。

样例输入

2
7 4
5 6

样例输出

110
121


题解

莫比乌斯反演

根据 bzoj4176 推出的结论,

那么就有:

预处理mu及其前缀和。

由于要处理多组询问,所以需要用O(n√n)的时间预处理出f,然后对于每组询问分块来求。

#include <cstdio>
#include <algorithm>
#define N 50010
using namespace std;
typedef long long ll;
const int n = 50000;
int mu[N] , sum[N] , prime[N] , tot , f[N];
bool np[N];
ll cal(int a , int b)
{int i , last;ll ans = 0;for(i = 1 ; i <= a && i <= b ; i = last + 1) last = min(a / (a / i) , b / (b / i)) , ans += (ll)(sum[last] - sum[i - 1]) * f[a / i] * f[b / i];return ans;
}
int main()
{int i , j , last , T , a , b;mu[1] = sum[1] = 1;for(i = 2 ; i <= n ; i ++ ){if(!np[i]) mu[i] = -1 , prime[++tot] = i;for(j = 1 ; j <= tot && i * prime[j] <= n ; j ++ ){np[i * prime[j]] = 1;if(i % prime[j] == 0){mu[i * prime[j]] = 0;break;}else mu[i * prime[j]] = -mu[i];}sum[i] = sum[i - 1] + mu[i];}for(i = 1 ; i <= n ; i ++ )for(j = 1 ; j <= i ; j = last + 1)last = i / (i / j) , f[i] += (last - j + 1) * (i / j);scanf("%d" , &T);while(T -- ) scanf("%d%d" , &a , &b) , printf("%lld\n" , cal(a , b));return 0;
}

 

转载于:https://www.cnblogs.com/GXZlegend/p/7000194.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/254382.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux根文件系统结构再认识

Linux根文件系统结构再认识刘建文&#xff08;http://blog.csdn.net/keminlau &#xff09; INTRO 尽管Linux的根文件系统在形式表现上是一体的&#xff08;所有数据目录均为根目录下的子目录&#xff09;&#xff0c;但实际它们是多个不同的【逻辑主体】&#xff08;为了实现…

C#浮点数据类型

文章目录博主写作不容易&#xff0c;孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 数据类型含义取值范围有效数字位数float32位浮点数1.5X10^-45 ~ 3.4X10^387double64位浮点数5.0X10^-324 ~ 1.7X10^30815 ~ 16 注意&#xff1a; 浮点数有一定的取值范围和有效数字限制…

在Window10上使用Ubuntu终端

在Windows10上使用Ubuntu终端 习惯了ubuntu的开发&#xff0c;回到windows的command可以说是很绝望了。之前偶尔用windows时一直用git-bash来代替。但是发现windows已经添加了对ubuntu子系统的支持&#xff0c;那直接用不是更爽。 1.安装 进入控制面板&#xff0c;开启适用于Li…

httpClient实现微信公众号消息群发

1、实现功能  向关注了微信公众号的微信用户群发消息。&#xff08;可以是所有的用户&#xff0c;也可以是提供了微信openid的微信用户集合&#xff09; 2、基本步骤 前提&#xff1a; 已经有认证的公众号或者测试公众账号 发送消息步骤&#xff1a; 发送一个请求微信去获取ac…

为静态博客生成器WDTP移植了一款美美哒主题

前言 关于这个主题的移植后公布&#xff0c;我已经联系了主题作者并取得同意&#xff0c;这个主题是一夜涕所写的Sgreen&#xff0c;预览图见下 关于WDTP 就是一个很方便很便携很快速的cpp编写的带gui跨平台的开源的静态博客生成器&#xff0c;软件作者更新记录在V站可以找到,软…

TCP/IP数据包结构分析

一般来说&#xff0c;网络编程我们只需要调用一些封装好的函数或者组件就能完成大部分的工作&#xff0c;但是一些特殊的情况下&#xff0c;就需要深入的理解 网络数据包的结构&#xff0c;以及协议分析。如&#xff1a;网络监控&#xff0c;故障排查等…… IP包是不安全的&am…

C#decimal数据类型

文章目录博主写作不容易&#xff0c;孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 为适应高精度的财务和货币计算的需要&#xff0c;C#提供了十进制decimal类型。decimal类型数据特征如下表所示&#xff1a; 数据类型含义取值范围有效数字位数decimal128位高精度十进制…

世界杯快到了,看我用Python爬虫实现(伪)球迷速成!

还有4天就世界杯了&#xff0c;作为一个资深&#xff08;伪&#xff09;球迷&#xff0c;必须要实时关注世界杯相关新闻&#xff0c;了解各个球队动态&#xff0c;这样才能在一堆球迷中如&#xff08;大&#xff09;鱼&#xff08;吹&#xff09;得&#xff08;特&#xff09;水…

Bootstrap学习笔记(四)-----Bootstrap每天必学之表单

本文主要讲解的是表单&#xff0c;这个其实对于做过网站的人来说&#xff0c;并不陌生&#xff0c;而且可以说是最为常用的提交数据的Form表单。本文主要来讲解一下内容&#xff1a; 1.基本案例2.内联表单3.水平排列的表单4.被支持的控件5.静态控件6.控件状态7.控件尺寸8.帮助文…

LVS--NAT模型配置

环境准备 管理IP地址角色备注192.168.11.131调度器&#xff08;Director&#xff09;对外提供VIP服务的地址为192.168.1.114192.168.11.132RS1 网关为192.168.11.131192.168.11.129RS2 网关为192.168.11.131将Directory开启内核转发 Linux系统默认是禁止数据包转发的。所谓转发…

STL中list的使用(理论)

STL中的list就是一双向链表&#xff0c;可高效地进行插入删除元素。现总结一下它的操作。文中所用到两个list对象c1,c2分别有元素c1(10,20,30) c2(40,50,60)。还有一个list<int>::iterator citer用来指向c1或c2元素。list对象的声明构造()&#xff1a;A. list<in…

C#数据类型转换—使用Convert类转换

文章目录简介用例博主写作不容易&#xff0c;孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 简介 System.Covert类就是专门进行类型转换的类&#xff0c;Convert类提供的方法可以实现各种进本数据类型之间的转换。Convert类的常用方法如下表&#xff1a; 方法说明ToBo…

服务器租用单线、双线、bgp 相比有哪些区别优势?

2019独角兽企业重金招聘Python工程师标准>>> 在IDC行业中&#xff0c;服务器的稳定性、安全性是考核服务商的主要指标&#xff0c;影响这两个指标的因素有很多&#xff0c;其中比较重要的有三个&#xff0c;分别是服务器的配置、机房骨干网宽带和机房的线路。我们常…

SQL Server 数据库的维护(四)__游标(cursor)

--维护数据库-- --游标(cursor)-- --概述&#xff1a; 注&#xff1a;使用select语句查询结果的结果集是一个整体&#xff0c;如果想每次处理一行或一部分行数据&#xff0c;游标可以提供这种处理机制。可以将游标理解为指针。指针指向哪条记录&#xff0c;哪条记录即是被操作记…

关于在unity中动态获取字符串后在InputField上进行判断的BUG

今天想做一个简单的密码锁定控制功能&#xff0c;但是出现了问题。我是在游戏开始时读取streamingAsset中的text中的文本&#xff0c;其实就是密码如下图密码是123456789 然后我在程序中输入了该密码出现错误&#xff0c;居然错了。 然后我打印读取的文本信息是什么、没错啊。然…

转载 调用xvid 实现解码

2011-06-01 00:26:14) 转载view plaincopy to clipboardprint? /// intinit_decoder() { intret; xvid_gbl_init_t xvid_gbl_init; xvid_dec_create_txvid_dec_create; memset(&xvid_gbl_init, 0,sizeof(xvid_gbl_init_t)); memset(…

C# 数值和字符串之间的相互转换

文章目录方法用例ToString&#xff08;&#xff09;方法Parse&#xff08;&#xff09;方法博主写作不容易&#xff0c;孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 方法 ToString&#xff08;&#xff09;方法&#xff1a;数值类型的 ToString&#xff08;&#xff…

LeetCode Reverse Words in a String III

原题链接在这里&#xff1a;https://leetcode.com/problems/reverse-words-in-a-string-iii/#/description 题目&#xff1a; Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial wo…

创业感悟:技术兄弟为什么一直没有起来(1)

相信很多做技术的朋友&#xff0c;看到“人脉”两个字&#xff0c;就显得有些敏感&#xff0c;有人甚至产生一种“抵触”的心理。 因为在很多人的心中&#xff0c;会自动的把“人脉”和“关系”关联起来&#xff0c;会把“人脉”与“走后门”&#xff0c;甚至会和“酒桌文化”&…

kali开启ssh

修改 vi /etc/ssh/sshd_config 1.将 permitrootlogin 前面的注释去掉,并且后面改为yes 如果没有则添加permitrootlogin yes 2.将#PasswordAuthentication no的注释去掉&#xff0c;并且将NO修改为YES //kali中默认是yes 3.按Esc , 同时按shift和冒号键 ,输入wq &#xff0c;回…