[SDOI2015]约数个数和

51单片机校园一卡通系统:从Proteus仿真到硬件落地 校园一卡通是嵌入式系统工程实践的经典载体,本质是基于RFID识别的身份核验与权限管理闭环。其核心原理涵盖ISO14443-A协议时序控制、有限资源下的状态机设计、SPI通信可靠性保障及EEPROM持久化存储等关键技术。技术价值在于训练工程师在4KB ROM、128B RAM等严苛约束下构建高可靠边缘节点的能力。典型应用场景包括门禁通行、食堂消费与课堂考勤三合一集成。本文聚焦51单片机平台,深入剖析Proteus仿真中必须达标的四大硬性指标与五大易忽略细节,覆盖RFID读卡时序、状态反馈机制、数码管消隐、Ke 阅读详情

Description

TTT 组询问。
设 d(x)d(x)d(x) 为 xxx 的约数个数,给定 NNN、MMM,求 ∑i=1N∑j=1Md(ij)\sum_{i=1}^N \sum_{j=1}^M d(ij)i=1∑N​j=1∑M​d(ij)
1≤n,m,T≤500001\le n, m, T\le 500001≤n,m,T≤50000

Solution

莫比乌斯反演即可:

∑n=1N∑m=1Md(nm)\sum_{n = 1}^{N} \sum_{m = 1}^{M} d(nm)n=1∑N​m=1∑M​d(nm)

=∑n=1N∑m=1M∑a∣n∑b∣m[gcd(a,b)==1]=\sum_{n = 1}^{N} \sum_{m = 1}^{M} \sum_{a|n} \sum_{b|m} [gcd(a,b) == 1]=n=1∑N​m=1∑M​a∣n∑​b∣m∑​[gcd(a,b)==1]

=∑n=1N∑m=1M∑a∣n∑b∣m∑d∣gcd(a,b)μ(d)=\sum_{n = 1}^{N} \sum_{m = 1}^{M} \sum_{a|n} \sum_{b|m} \sum_{d|gcd(a,b)} \mu (d)=n=1∑N​m=1∑M​a∣n∑​b∣m∑​d∣gcd(a,b)∑​μ(d)

=∑d=1min⁡{N,M}μ(d)∑a=1⌊Nd⌋∑b=1⌊Md⌋⌊Nad⌋⌊Mbd⌋=\sum_{d = 1}^{\min\{N,M\}} \mu (d) \sum_{a = 1}^{\left \lfloor \frac{N}{d}\right \rfloor} \sum_{b = 1}^{\left \lfloor \frac{M}{d}\right \rfloor} \left \lfloor \frac{N}{ad}\right \rfloor \left \lfloor \frac{M}{bd}\right \rfloor=d=1∑min{N,M}​μ(d)a=1∑⌊dN​⌋​b=1∑⌊dM​⌋​⌊adN​⌋⌊bdM​⌋

=∑d=1min⁡{N,M}μ(d)∑a=1⌊Nd⌋⌊Nad⌋∑b=1⌊Md⌋⌊Mbd⌋=\sum_{d = 1}^{\min\{N,M\}} \mu (d) \sum_{a = 1}^{\left \lfloor \frac{N}{d}\right \rfloor}\left \lfloor \frac{N}{ad}\right \rfloor \sum_{b = 1}^{\left \lfloor \frac{M}{d}\right \rfloor} \left \lfloor \frac{M}{bd}\right \rfloor=d=1∑min{N,M}​μ(d)a=1∑⌊dN​⌋​⌊adN​⌋b=1∑⌊dM​⌋​⌊bdM​⌋设 g(x)=∑i=1x⌊xi⌋g(x) = \sum_{i=1}^x \left \lfloor \frac{x}{i} \right \rfloorg(x)=∑i=1x​⌊ix​⌋。

预处理 g(x)g(x)g(x),μ\muμ 函数前缀和。

整除分块,时间复杂度 O(Tx)O(T\sqrt x)O(Tx​)

Code

//Dlove's template
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <vector>
#define R register
#define ll long long
#define ull unsigned long long
#define db double
#define ld long double
#define sqr(_x) ((_x) * (_x))
#define Cmax(_a, _b) ((_a) < (_b) ? (_a) = (_b), 1 : 0)
#define Cmin(_a, _b) ((_a) > (_b) ? (_a) = (_b), 1 : 0)
#define Max(_a, _b) ((_a) > (_b) ? (_a) : (_b))
#define Min(_a, _b) ((_a) < (_b) ? (_a) : (_b))
#define Abs(_x) (_x < 0 ? (-(_x)) : (_x))
using namespace std;
namespace Dntcry
{
	char Bs[1 << 22], *Ss = Bs, *Ts = Bs;		
	#define getchar() (Ss == Ts && (Ts = (Ss = Bs)  + fread(Bs, 1, 1 << 22, stdin), Ss == Ts)  EOF : *Ss++) 
	inline int read()
	{
		R int a = 0, b = 1; R char c = getchar();
		for(; c < '0' || c > '9'; c = getchar()) (c == '-') ? b = -1 : 0;
		for(; c >= '0' && c <= '9'; c = getchar()) a = (a << 1) + (a << 3) + c - '0';
		return a * b;
	}
	inline ll lread()
	{
		R ll a = 0, b = 1; R char c = getchar();
		for(; c < '0' || c > '9'; c = getchar()) (c == '-') ? b = -1 : 0;
		for(; c >= '0' && c <= '9'; c = getchar()) a = (a << 1) + (a << 3) + c - '0';
		return a * b;
	}
	const int Maxn = 50010;
	int T, n, m;
	int Pri[Maxn], tot, mu[Maxn];
	int g[Maxn];
	bool vis[Maxn];
	int getv(R int x)
	{
		R int res = 0;
		for(R int i = 1, next = 0; i <= x; i = next + 1)
		{
			next = x / (x / i);
			res += (next - i + 1) * (x / i);
		}
		return res;
	}
	int Main()
	{
		mu[1] = 1;
		for(R int i = 2; i <= 50000; i++)
		{
			if(!vis[i]) Pri[++tot] = i, mu[i] = -1;
			for(R int j = 1; j <= tot && Pri[j] * i <= 50000; j++)
			{
				vis[i * Pri[j]] = 1;
				if(i % Pri[j] == 0)
				{
					mu[i * Pri[j]] = 0;
					break;
				}
				else mu[i * Pri[j]] = -mu[i];
			}
			mu[i] += mu[i - 1];
		}
		for(R int i = 1; i <= 50000; i++) g[i] = getv(i);
		T = read();
		while(T--)
		{
			n = read(), m = read();
			if(n > m) swap(n, m);
			R ll Ans = 0;
			for(R int i = 1, next = 0; i <= n; i = next + 1)
			{
				next = Min(n / (n / i), m / (m / i));
				Ans += 1ll * (mu[next] - mu[i - 1]) * g[n / i] * g[m / i];
			}
			printf("%lld\n", Ans);
		}
		return 0;
	}
}
int main()
{
	return Dntcry :: Main();
}
【题解&总结】 P3327 [SDOI2015]约数个数和 题目大意 设 d(x)d(x)d(x) 表示 xxx 因数个数,给定 n,mn,mn,m ,求 ∑i=1n∑j=1md(ij)\sum_{i=1}^n\sum_{j=1}^md(ij)i=1∑n​j=1∑m​d(ij) 题解 首先有一个奇妙的结论: d(ij)=∑x∣i∑y∣i[gcd(x,y)==1]d(ij)=\sum_{x|i}\sum_{y|i}[gcd(x,y)==1]d(ij)=x∣i∑​y∣i∑​[gcd(x,y)==1] 证明如下: 根据定义,d(ij)=∑p∣ij1d(ij)=\sum_{ 阅读详情

相关推荐

【Rcode】生存分析: KM & COX回归& 随机森林& nomogram

本文使用了R——survival包下的lung数据进行方法测试: 1)KM 2) Cox回归:多因素 3)随机森林因子(根据cox回归结果) 4)nomogram ( 根据cox回归结果,建立了中位生存时间,1年5年生存率的概率计算) -------------------????????‍♀️本文只有干货,非常干!????----------------------------- 一、数据加载 #生存分析 library("survival") library("survminer") data("

weixin_43172152的博客 9273

【SDOI 2015】约数个数和

【SDOI 2015】约数个数和 Problem Description 设 \(d(x)\) 为 \(x\) 的约数个数,给定 \(N\)、\(M\),求 \[ \sum_{i=1}^N \sum_{j=1}^M d(ij) \] Input Format 输入文件包含多组测试数据。 第一行,一个整数 \(T\),表示测试数据的组数。 接下来的 ...

洛水·锦依卫's Blog 394

K型热电偶负电压采集难题?3种运放电路设计方案对比(含Multisim仿真)

本文针对K型热电偶在低温测量中产生的负电压采集难题,详细对比了三种运放电路设计方案,包括双电源运放反相放大、单电源仪表放大器和差分放大电路,并结合Multisim仿真数据分析了各方案的性能差异。文章还提供了PCB布局和抗干扰设计的实战技巧,帮助工程师解决热电偶信号采集中的核心挑战。

postgres8guard的博客 1018

P3327 [SDOI2015]约数个数和(莫比乌斯反演)

链接 题意: 设 d(x)d(x)d(x) 为 xxx 的约数个数,给定 n,mn,mn,m,求∑i=1n∑j=1md(ij)\sum_{i=1}^n\sum_{j=1}^md(ij)∑i=1n​∑j=1m​d(ij) 分析: showTime: 首先看d(ij)=∑x∣i∑y∣j[gcd⁡(x,y)=1]d(ij)=\sum_{x|i}\sum_{y|j} [\gcd(x,y)=1]d(ij)=∑x∣i​∑y∣j​[gcd(x,y)=1] 然后我们看这个题的F(n)F(n)F(n)和f(n)f(n)f(n

林苏泽 198

用Python 绘制一个只属于你自己的世界地图

Python之所以这么流行,是因为它不仅能够应用于科技领域,还能用来做许多其他学科的研究工具,绘制地图便是其功能之一。 今天我们用matplot工具包之一的mpl_toolkits来绘制世界地图,这是一个简单的可视化工具,如果希望绘制更加复杂的地图,可以考虑使用Google Maps API,不过这不在我们今天的讨论范围之内。 1.安装 为了能够顺利开展本项目,你需要先安装以下依赖,在cmd或Terminal中输入以下命令: pipinstallnumpy pipinstallm...

qq_38887171的博客 1870

区域法(zonal method)重构波前

目的:实现区域法的Matlab代码 1.理论介绍 区域法波前重构即从波前探测器测得的波前斜率中恢复出波前的相位值,其分为:休晋模型(Hudgin)[90]、绍契威尔模型(Southwell)[40]和弗雷德模型(Fried)[48]。 1.1 Fried模型,对于N×N微透镜阵列构成的网格: 以3*3的子透镜为例,解释上式,对其展开 改写为矩阵形式: 记作:S=AΦ,A根据N而确定。S是波前探测器测得的斜率,Φ是重构矩阵的相位值。 1.2 而Southwel...

EyRe1的博客 8194

洛谷 [SDOI2015]约数个数和 解题报告

[SDOI2015]约数个数和 题目描述 设\(d(x)\)为\(x\)的约数个数,给定\(N,M\),求$ \sum\limits^N_{i=1}\sum\limits^M_{j=1}d(ij)$ 输入输出格式 输入格式: 输入文件包含多组测试数据。第一行,一个整数\(T\),表示测试数据的组数。接下来的\(T\)行,每行两个整数\(N,M\)。 输出格式: \(T\)行,每行一个整数,表示你所...

weixin_30851867的博客 87

(九)DFI接口时序

文章目录一、DFI Interface 一、DFI Interface   DFI接口是连接DDR Controller与DDR_PHY之间的通用接口,其信号组如下表:       

Mr.翟的博客 1万+

洛谷P3327,约数个数和(莫比乌斯反演)

设d(x)为x的约数个数,给定N、M,求∑i=1N∑j=1Md(ij) \sum^N_{i=1}\sum_{j=1}^Md(ij)i=1∑N​j=1∑M​d(ij) 颓式子,我好菜啊 首先,这个东西 d(i,j) d(i,j) d(i,j)是等于 ∑x∣i∑y∣i[gcd(x,y)==1] \sum_{x|i} \sum_{y|i}[gcd(x,y)==1]x∣i∑​y∣i∑​[gcd(x,y)...

zwjqwq的博客 231

数据资产入表——解读100页数据资产入表解读与分析【附全文阅读】

本文档《数据资产入表:解读与分析》面向企业财务、数据管理、法务合规及高管等核心岗位,系统解析数据资产入表全流程。以"政策-实操-价值"为主线,首先解读入表政策要求,明确会计处理规范;其次详细拆解数据盘点、治理、确权、评估等实操步骤,提供行业案例参考;最后分析入表难点及后续运营策略,为企业提供从政策理解到落地执行的一站式解决方案。

cdfunlove的博客 391

Autosar PNC网络管理配置-UserData的使用

之前配置的网络管理报文中的data都由ComM管理,后面客户新增了需求,最后两个byte需要发送,本文记录一下相关配置的修改能配置生成的,尽量不手码,毕竟手写一堆bug~

赞的博客 1904

约数个数及约数之和知识点(含公式)

在学习Acwing c++蓝桥杯辅导课第八讲数论-AcWing 1296. 聪明的燕姿时学习到了约数之和的公式,这里来记录下知识点。博客目录索引(持续更新)

每个人都是独一无二的,把握好自己的节奏,跟着自己的心走。 5016

D19: OpenClaw 安全性配置指南

在 OpenClaw 的 30 天探索旅程中,我们已经探讨了邮件自动化(D18)。今天进入安全专题,我将分享一个至关重要的话题:OpenClaw 安全性配置指南。 随着 OpenClaw 深入工作流核心,它掌握了越来越多的敏感信息: API Keys(GitHub、飞书、Notion、Jira...) 企业数据(代码库、文档、聊天记录) 个人数据(日历、邮件、任务) 系统权限(文件读写、命令执行、网络访问) 安全不是可选项,而是必选项。一次配置失误可能导致: API Key 泄露 → 账号被盗用权限

刘一说的IT专栏 203

[bzoj3994][SDOI2015]约数个数和

3994: [SDOI2015]约数个数和Time Limit: 20 Sec Memory Limit: 128 MB Submit: 505 Solved: 329 [Submit][Status][Discuss] Description设d(x)为x的约数个数,给定N、M,求 ∑ni=1∑mj=1d(ij)\sum_{i=1}^{n}\sum_{j=1}^{m}d(ij) In

Vampire 1133

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

「SDOI2015」约数个数和

「SDOI2015」约数个数和 设d(x)d(x)d(x)为xxx的约数个数,求 ∑i=1n∑j=1md(ij)∑i=1n∑j=1md(ij)\sum_{i=1}^n \sum_{j=1}^m d(ij) n,m&lt;=50000n,m&lt;=50000n, m &lt;=50000&lt;=50000 ——————- 设ijijij唯一分解后为 ∏kqqik+qjkk∏kqkq...

tata_d2的博客 441

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

P3327 [SDOI2015]约数个数和

P3327 [SDOI2015]约数个数和 \(d(ij)=\sum_{x|i}\sum_{y|j}[gcd(x,y)=1]\) 则我们原式化为 \(Ans=\sum_{i=1}^{n}\sum_{j=1}^{m}\sum_{x|i}\sum_{y|j}[gcd(x,y)=1]\) 莫比乌斯反演: \(f(d)=\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)=d]\) ...

weixin_30606461的博客 174

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

[SDOI2015]约数个数和(莫比乌斯反演)

题目链接 [SDOI2015]约数个数和 解题思路 到这里整个反演就结束了,由于是多组输入,因此应该预处理μ\muμ数组,并且预处理出从i=1到MAX_N的∑MAXN/i\sum MAXN/i∑MAXN/i,存入sum数组。这样在计算的时候直接使用sum[n/d]就可以了。 AC代码 #include <iostream> using namespace std; typedef ...

qq_43227036的博客 217

[SDOI2015] 约数个数和(莫比乌斯反演)

[SDOI2015] 约数个数和 设d(x)为x的约数个数,给定N、M,求 ∑i=1N∑j=1Md(ij)\displaystyle\sum_{i=1}^N\displaystyle\sum_{j=1}^Md(ij)i=1∑N​j=1∑M​d(ij) Input 输入文件包含多组测试数据。 第一行,一个整数T,表示测试数据的组数。 接下来的T行,每行两个整数N、M。 Output T行,每行一个...

Tan_JX 271

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

【BZOJ3994】[SDOI2015]约数个数和 Description 设d(x)为x的约数个数,给定N、M,求 Input 输入文件包含多组测试数据。 第一行,一个整数T,表示测试数据的组数。 接下来的T行,每行两个整数N、M。 Output T行,每行一个整数,表示你所求的答案。 Sample Input 2 7 4 ...

aodanchui1057的博客 144

bzoj 3994 [SDOI2015]约数个数和

分块+莫比乌斯反演

我要吃熊猫 486

[SDOI 2015] 约数个数和(约数个数函数性质 + 莫比乌斯反演) | 错题本

文章目录题目分析代码 题目 [SDOI 2015] 约数个数和 分析 d(xy)=∑d1∣x∑d2∣y[gcd⁡(d1,d2)=1]d(xy)=\sum_{d_1|x}\sum_{d_2|y}[\gcd(d_1,d_2) = 1]d(xy)=d1​∣x∑​d2​∣y∑​[gcd(d1​,d2​)=1] 我们证明每个因子与 gcd⁡(d1,d2)=1\gcd(d_1,d_2) = 1gcd(d1​,d2​)=1 的双射关系: 设 x=∏i=1npiai,y=∏i=1npibi (ai+bi≠0)x

ixRic 353

洛谷P3327 - [SDOI2015]约数个数和

Portal Description 共\(T(T\leq5\times10^4)\)组数据。给出\(n,m(n,m\leq5\times10^4)\),求\[\sum_{i=1}^n\sum_{j=1}^m\sigma_0(ij)\] Solution 首先有结论:\(\sigma_0(xy)=\sum_{d_1|x}\sum_{d_2|y}[gcd(d_1,d_2)=1]\)。下面先...

TC1129的博客 161

P3327 [SDOI2015]约数个数和 (mobius反演)

P3327 [SDOI2015]约数个数和 推导过程 求∑i=1n∑j=1md(ij)\sum_{i = 1} ^{n} \sum_{j = 1} ^{m} d(ij)∑i=1n​∑j=1m​d(ij) =∑i=1n∑j=1m∑x∣i∑y∣jgcd(x,y)==1= \sum_{i = 1} ^{n} \sum_{j = 1} ^{m} \sum_{x \mid i} \sum_{y \mid j} gcd(x, y) == 1=i=1∑n​j=1∑m​x∣i∑​y∣j∑​gcd(x,y)==1 改成枚举x

lifehappy 292

洛谷 P3327 [SDOI2015]约数个数和 莫比乌斯反演

P3327 [SDOI2015]约数个数和 学习莫比乌斯反演最大的感觉就是:这完全靠智商硬核推公式啊。 d(ij)的约数个数预备知识: 我们切换一下枚举次序:(考验智商了) 莫比乌斯函数性质: ...

ccsu_cat 269
上一篇: LOJ #2551. 「JSOI2018」列队
下一篇: 关于代码风格(施工中)
DntcryBecthlev
博客等级 码龄9年 2粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值