[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_{ 阅读详情

相关推荐

POST 接口,将参数拼接到 URL 上,而不是将其作为表单数据发送

POST 接口,将参数拼接到 URL 上,而不是将其作为表单数据发送

pig_ning的博客 3144

【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

保姆级教程:在紫光同创Titan2 FPGA上实现PCIe DMA,实测带宽接近理论极限

本文详细介绍了在紫光同创Titan2 FPGA上实现PCIe DMA性能调优的全过程,通过参数优化和架构设计,实测带宽达到6.91GB/s,接近理论极限。涵盖开发环境搭建、PCIe IP核定制、DMA引擎设计、驱动开发及性能调优等关键步骤,为FPGA开发者提供实用指南。

weixin_30954817的博客 335

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

UVM和System verilog笔记总结(四)

virtual sequence 即虚seq,用于管理多个实sequence的执行顺序。 下面有三个sequence,此时需要virtual sequence去管理这三个的顺序。 virtual sequence和virtual sequencer需要成对写,使用例化实的sequence和sequencer控制: 此时在virtual sequence里面启动,而不是之前在test.sv里面用default或start函数启动。具体方法如下:先例化 再启动,用 `uvm_do_on 实sequence

weixin_42655118的博客 642

Multisim 11.0的安装破解汉化步骤

15:打开注册机,选择管理员运行,默认第一项,选择生成文件路径,这里不要随意选择,要找到你安装Multisim安装路径下Shard下的License Manager路径下,否则会报错,破解失败。14:后面会出现一个更新提示,选择否,然后选择重启电脑后,先不要选择重启电脑,在这里出现了问题(可能敲击回车,默认去重启电脑了),所以我说不要重启电脑,重启破解时右下角出现这,点击否。17:重启电脑,如果前面重启过,那可以跳过重启,应用程序下找到下图所示,启动。16:点击确认覆盖,路径下生成了该文件。

qq_53260940的博客 2371

洛谷 [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

WPF 上位机可视化天花板:HandyControl 搭建 SCADA 系统

HandyControl 凭借「丰富的工业级控件、灵活的主题定制、优异的性能」,成为 WPF 开发 SCADA 系统的首选 UI 库。本文搭建的 SCADA 系统涵盖实时监控、设备控制、报警管理、趋势分析四大核心功能,通过 HandyControl 实现了工业级可视化效果,开发效率提升 60% 以上。控件开箱即用:无需自定义仪表盘、趋势图、指示灯等 SCADA 核心控件;可视化效果专业:工业风主题、动态颜色切换、清晰的状态呈现,契合工业场景需求;

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1126

洛谷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

Android实现TextToSpeech控件实现语音播报--朗读文字 (附完整源码)

Android实现TextToSpeech控件实现语音播报--朗读文字 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1116

GEE:基于自定义的年度时序数据集进行LandTrendr变化检测

本文介绍了使用年度时序数据进行LandTrendr变化检测的方法,包括核心函数调用、参数设置和结果可视化。通过筛选参数(年份、变化幅度和持续时间)对结果进行过滤,输出变化年份、变化幅度和持续时间。代码提供了完整的处理流程,包括数据输入、LandTrendr算法运行、结果筛选与可视化,并支持结果导出。适用于基于Google Earth Engine平台的地表变化检测分析。

养乐多的博客 752

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

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

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

基于NARX和NARX-LSTM的模型辨识与MPC控制系统调试与优化

本文针对两输入单输出非线性系统,提出基于NARX和NARX-LSTM的模型辨识与MPC控制优化方案。系统输入为固定量u1和可调量u2(8.5-140),输出目标为-0.58。现有模型存在辨识精度不足、历史输出依赖过重、预测偏差等问题。解决方案包括:数据差分处理改善非平稳性、调整延迟阶数优化模型结构、引入注意力机制替代手动加权、改进损失函数消除预测偏差。MPC控制器将结合优化模型,考虑控制变量步长约束(≥2),实现输出稳定控制。通过系统性的模型调试与控制算法优化,最终形成完整的非线性系统辨识与控制框架。

huanghm88的专栏 128

[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

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

「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

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

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

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

[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、付费专栏及课程。

余额充值