BZOJ 1101 [POI2007]Zap(莫比乌斯反演)-程序员宅基地

技术标签: php  数据结构与算法  

 

【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=1101

 

【题目大意】

  求[1,n][1,m]内gcd=k的情况

 

【题解】

  考虑求[1,n][1,m]里gcd=k

  等价于[1,n/k][1,m/k]里gcd=1

  考虑求[1,n][1,m]里gcd=1

  结果为sum(miu[d]*(n/d)*(m/d))

  预处理O(n^1.5)

  由于n/d只有sqrt(n)种取值,所以可以预处理出miu[]的前缀和 询问时分段求和

 

【代码】

#include <cstdio>
#include <algorithm>
const int N=50010;
using namespace std;
typedef long long ll;
int T,a,b,c,d,k;
int tot,p[N],miu[N],sum[N],v[N];
void mobius(int n){
    int i,j;
    for(miu[1]=1,i=2;i<=n;i++){
        if(!v[i])p[tot++]=i,miu[i]=-1;
        for(j=0;j<tot&&i*p[j]<=n;j++){
            v[i*p[j]]=1;
            if(i%p[j])miu[i*p[j]]=-miu[i];else break;
        }
    }for(i=1;i<=n;i++)sum[i]=sum[i-1]+miu[i];
}
ll cal(int n,int m){
    ll t=0;
    if(n>m)swap(n,m);
    for(int i=1,j=0;i<=n;i=j+1)
    j=min(n/(n/i),m/(m/i)),t+=(ll)(sum[j]-sum[i-1])*(n/i)*(m/i);
    return t;
}
int main(){
    mobius(50000);
    scanf("%d",&T);
    while(T--){
        scanf("%d%d%d",&a,&b,&k);
        printf("%lld\n",cal(a/k,b/k));
    }return 0;
}

  

转载于:https://www.cnblogs.com/forever97/p/bzoj1101.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30553777/article/details/96980447

智能推荐

Vue组件触发另一个组件的方法_vue中怎么通过事件触发另一个组件挂载-程序员宅基地

文章浏览阅读3.6k次,点赞6次,收藏19次。Vue组件触发另一个组件的方法前言:当点击申请之后,头部组件上的值要动态发生变化,所以我们采取事件总线的方式1.全局注册bus总线// main.js 将$bus挂载在原型上Vue.prototype.$bus = new Vue();列表页面async shenqing(row){ // 请求后台接口 let res = await addApply(row.id) // res.code为0 即没有错误 if(res.code == 0)_vue中怎么通过事件触发另一个组件挂载

服务器显示图标,服务器桌面显示图标怎么设置-程序员宅基地

文章浏览阅读1.4k次。服务器桌面显示图标怎么设置 内容精选换一换对于使用第三方VR运行环境(如SteamVR)的用户,GPU云服务器创建完成或重启后,建议用户在连接头显设备前先进行房间设置,即登录GPU云服务器配置环境,包括设置默认身高等操作。已在VR云渲游平台成功创建应用。创建的GPU加速型云服务器为“闲置”状态。打开“VR云渲游平台”,在左侧导航栏选择“云服务器列表”。检查并确认新创建云服务器(或本节操作指导用户关..._服务器怎么显示桌面图标

Android逆向:smali编码实践(五)—— 小书亭去除定时广告以及权限未授权弹窗_smali 定时-程序员宅基地

文章浏览阅读844次。目录1.准备工作2.反编译APK3.修改smali文件4.总结1.准备工作1.1下载好apktool的jar这里使用apktool-2.5.0.jar(PS: 执行命令为 java -jar apktool_2.5.0.jar d lsp.apk 与 java -jar apktool_2.5.0.jar b lsp)1.2 手机或者模拟器1.3 安装好JaDex方便自己看看大概写出来的东西是个什么样子,用其它工具也行,不过这个很方便。1.4 自己的keysto..._smali 定时

webview uniappH5端与uniappApp端通信_uni.requirenativeplugin is not a function-程序员宅基地

文章浏览阅读700次。1.在index.html中引入webview.js并检查。2.在需要的页面向uniappApp端发送消息。3.uniappH5端接收。_uni.requirenativeplugin is not a function

基于孔雀算法优化的核极限学习机(KELM)回归预测-程序员宅基地

文章浏览阅读935次,点赞8次,收藏11次。摘要:本文利用孔雀算法对核极限学习机(KELM)进行优化,并用于回归预测.

SAP ABAP 创建后台定时任务job_abap 定时任务-程序员宅基地

文章浏览阅读3.7k次。SM36:创建定时任务; SM37:查看定时任务; JDBG:后台任务debug,在对应的sm37中对应的job页面 t-code输入_abap 定时任务

随便推点

Ada计算机图形DirectX之ddraw_ddrawdriverobjectlismutex-程序员宅基地

文章浏览阅读395次。------------------------------------------ File : ddraw.ads ---- Translator:Dongfeng.Gu,2018/10/29 ---- Mail: [email protected] ---- Progress:100% ..._ddrawdriverobjectlismutex

半胱氨酸荧光素标记的优点有哪些FITC-Cysteine-程序员宅基地

文章浏览阅读142次,点赞4次,收藏3次。氨乙基(硫脲基荧光素) 5-FITC-C2-NH2 75453-82-6。吲哚菁绿ICG-马来酰亚胺 ICG-MAL 2143933-81-5。吲哚菁绿ICG-炔基 ICG-Alkyne 1622335-41-4。吲哚菁绿ICG-活性酯 ICG-NHS 1622335-40-3。异硫氰酸荧光素-活性酯 FITC-NHS 117548-22-8。吲哚菁绿ICG-氨基 ICG-NH2 1686147-55-6。吲哚菁绿ICG-羧基 ICG-COOH 181934-09-8。产品名称:荧光素标记半胱氨酸。

Python 自然语言处理学习笔记(一)-- 软件安装需求_python中prover9下载-程序员宅基地

文章浏览阅读1.6k次。Python自然语言处理相关工具安装说明NLTK–Python自然语言处理工具库PythonNumPy–Python科学计算库Matplotlib–数据可视化2D绘图库(iPython也可用于绘图)NetworkX–存储和操作网络结构的函数库 (若要实现可视化语义网络–Graphviz)Prover9–一阶等式逻辑定理自动证明器,支持语言中的推理本人用Python自然语言处理作为入门书籍,其中用到_python中prover9下载

Sass使用_sass 迭代器数组-程序员宅基地

文章浏览阅读302次。是CSS的预处理语言,它可以转换成CSS供HTML使用。市面上主流的CSS的预处理语言,有不管是哪种,语法类似,思路相通,在我们的课程中学习的Sass。_sass 迭代器数组

小程序+spring boot工程技术研究中心 毕业设计源码201738-程序员宅基地

文章浏览阅读35次。工程技术研究中心小程序的开发是基于微信小程序的基础上,采用java语言,基于MVVM模式进行开发,采取MySQL作为后台数据的主要存储单元,采用Springboot框架实现了本系统的全部功能。工程技术研究中心小程序,具有论文信息、专利信息、软著信息、研讨会信息、人员介绍、身份分类等功能,本系统代码的复用率高,系统维护代价小,具有方便、灵活、高效等特征。

java 二维数组_java输入二维数组-程序员宅基地

文章浏览阅读5.2k次,点赞4次,收藏24次。语法:数据类型 [ ][ ] 数组名 ;或者 数据类型 数组名[ ][ ]int [ ] [ ] scores;//定义二维数组scores = new int[5][3]//分配内存空间或者:int [ ][ ] scores = new int[5][3];或者直接赋值:int [ ][ ] scores = {{元素,……},{元素,……},{元素,……},{元素,……},{元素,……}}说明:二维数组实际是以一维数组为元素的一维数组。import java._java输入二维数组