[luogu4466]和与积
令$d=\gcd(i,j)$,$i'=\frac{i}{d}$,$j'=\frac{j}{d}$,则$(i',j')=1$,可得$(i'+j',i'j')=1$(假设有公因子$p$,必然有$p|i'或j'$,又因为$p|(i'+j')$,则$p|i'$且$p|j'$,与$(i',j')=1$矛盾)
根据这些,原式$(i+j)|ij\iff(i'+j')|i'j'd\iff (i'+j')|d$
考虑枚举$i'$和$j'$,那么答案即$\sum_{i=1}^{n}\sum_{j=i+1}^{n}[\gcd(i,j)=1]\lfloor\frac{n}{(i+j)j}\rfloor$
先对第一维进行反演,得到$\sum_{d=1}^{n}\mu(d)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=i+1}^{\lfloor\frac{n}{d}\rfloor}\lfloor\frac{n}{(i+j)jd^{2}}\rfloor$
可以发现,右式不为0必要条件为$i<j\le\lfloor \sqrt{\frac{n}{d^{2}}}\rfloor$,因此$d\le \sqrt{n}$,暴力复杂度即$n\int_{1}^{\sqrt{n}}x^{-2}dx=o(n)$
考虑先枚举$j$再对$i+j$数论分块,时间复杂度降为$n^{\frac{3}{4}}\int_{1}^{\sqrt{n}}x^{-\frac{3}{2}}dx=o(n^\frac{3}{4})$,可以通过

1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 100005
4 int n,p[N],vis[N],mu[N];
5 long long ans;
6 long long calc(int n,int k){
7 long long ans=0;
8 for(int i=k+1,j;(i<=n)&&(i<2*k);i=j+1){
9 j=min(n/(n/i),2*k-1);
10 ans+=(n/i)*(j-i+1);
11 }
12 return ans;
13 }
14 int main(){
15 scanf("%d",&n);
16 mu[1]=1;
17 for(int i=2;i<N-4;i++){
18 if (!vis[i]){
19 p[++p[0]]=i;
20 mu[i]=-1;
21 }
22 for(int j=1;(j<=p[0])&&(i*p[j]<N-4);j++){
23 vis[i*p[j]]=1;
24 if (i%p[j])mu[i*p[j]]=mu[i]*mu[p[j]];
25 else{
26 mu[i*p[j]]=0;
27 break;
28 }
29 }
30 }
31 int d=(int)sqrt(n);
32 for(int i=1;i<=d;i++){
33 int m=n/(i*i),dd=(int)sqrt(m);
34 for(int j=1;j<=dd;j++)ans+=mu[i]*calc(m/j,j);
35 }
36 printf("%lld",ans);
37 }
[luogu4466]和与积的更多相关文章
- bzoj2693--莫比乌斯反演+积性函数线性筛
推导: 设d=gcd(i,j) 利用莫比乌斯函数的性质 令sum(x,y)=(x*(x+1)/2)*(y*(y+1)/2) 令T=d*t 设f(T)= T可以分块.又由于μ是积性函数,积性函数的约束和 ...
- hdu1452 Happy 2004(规律+因子和+积性函数)
Happy 2004 题意:s为2004^x的因子和,求s%29. (题于文末) 知识点: 素因子分解:n = p1 ^ e1 * p2 ^ e2 *..........*pn ^ en 因子 ...
- [LeetCode] Maximum Product of Word Lengths 单词长度的最大积
Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where the tw ...
- [LeetCode] Product of Array Except Self 除本身之外的数组之积
Given an array of n integers where n > 1, nums, return an array output such that output[i] is equ ...
- 2019年台积电进军AR芯片,将用于下一代iPhone
近日,有报道表示台积电10nm 芯片可怜的收益率可能会对 2017 年多款高端移动设备的推出产生较大的影响,其中自然包括下一代 iPhone 和 iPad 机型.不过,台积电正式驳斥了这一说法,表明1 ...
- SAM4E单片机之旅——24、使用DSP库求向量数量积
DSP(Digital Signal Processing,数字信号处理)中会使用大量的数学运算.Cortex-M4中,配置了一些强大的部件,以提高DSP能力.同时CMSIS提供了一个DSP库,提供了 ...
- AC日记——向量点积计算 openjudge 1.6 09
09:向量点积计算 总时间限制: 1000ms 内存限制: 65536kB 描述 在线性代数.计算几何中,向量点积是一种十分重要的运算. 给定两个n维向量a=(a1,a2,...,an)和b=(b ...
- 求连续最大子序列积 - leetcode. 152 Maximum Product Subarray
题目链接:Maximum Product Subarray solutions同步在github 题目很简单,给一个数组,求一个连续的子数组,使得数组元素之积最大.这是求连续最大子序列和的加强版,我们 ...
- [猜数字]把两个数和告诉A,积告诉B,求这两个数是什么
1-20的两个数把和告诉A,积告诉B,A说不知道是多少,B也说不知道,这时A说我知道了,B接着说我也知道了,问这两个数是多少? 分析: 设和为S,积为M. 首先,A:我不知道. 说明:S可以分解成多个 ...
随机推荐
- LightningChart XY功能中的常见问题
LightningChart XY功能中的常见问题 XY 是LightningChart 的重要功能之一,也是被用户使用最广泛的.用户经常对这个功能有着这样那样的疑问,现在将一些常用问题汇总了一下,希 ...
- 开启Nginx代理HTTPS功能
1.首先查看是否已经安装SSL openssl version -a 2.生成SSL证书 在nginx目录下创建ssl文件夹 cd /etc/pki mkdir nginx cd nginx 生成20 ...
- js 手动实现 promise.all的功能
在中高级面试中,实现一个promise.all是一个频率较高的面试题 首先分析下 promise.all(),(参考MDN) 接收一个promise的iterable类型(注:Array,Map,Se ...
- 基于querybuilder的可根据现有数据表自动生成Restful API的dotnet中间件
AutoApi 基于SqlKata Query Builder的可根据数据表自动生成Restful API的dotnet中间件 项目地址 Github Gitee 支持的数据库 MySql AutoA ...
- 题解 [SDOI2009]E&D/染色游戏/Moving Pebbles
E&D 染色游戏 Moving Pebbles E&D 题目大意 给出 \(2n\) 堆石子,\(2i-1\) 和 \(2i\) 为一组.每次可以选择一组删掉其中一堆,然后从同一组另外 ...
- android和IOS自动化定位方法
元素定位 方法:id定位,name定位(text定位),class_name定位, accessibility_id定位,xpath定位等 (目前1.5版本的已经不支持name定位了),所以APP的定 ...
- Java(13)详解构造方法
作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15201600.html 博客主页:https://www.cnblogs.com/testero ...
- Scrum Meeting 14
第14次例会报告 日期:2021年06月07日 会议主要内容概述: 汇报了已完成的工作,明确了下一步目标,正在努力赶进度. 一.进度情况 我们采用日报的形式记录每个人的具体进度,链接Home · Wi ...
- OKR与影响地图,别再傻傻分不清
摘要:OKR和影响地图虽然都是为了一个目标去进行规划的方法,但是两者侧重的内容却不一致. 本文分享自华为云社区<一分钟读懂OKR与影响地图>,作者: 敏捷的小智. 什么是OKR及影响地图 ...
- 2019.03.27【GDOI2019】模拟 T3
题目大意 给出$n$, $p$, 求有多少长度为$n$的排列可以被分成三个上升子序列, 数量对$p$取模, 数据范围 $3 \leq n \leq 500$. 思路 首先让我们考虑如果有一个排列,如何 ...