Acjudge #P1004. 整除三元组

news2024/11/15 10:53:27

蒟蒻来讲题,还望大家喜。若哪有问题,大家尽可提!

Hello, 大家好哇!本初中生蒟蒻讲解一下Acjudge #P1004. 整除三元组!

===========================================================================================

原题

题目背景

潍坊高新OI社区打算开讲“数论”了,大家赶紧来学习一下“整除”吧。

题目描述

给你两个整数n和m,希望你构造出尽可能多的三元组 ( x , y , z ) (x,y,z) (x,y,z)(注意: x , y , z x,y,z x,y,z是小于等于 n n n的正整数)。 使得三元组中的 x + y , x + z , y + z x+y, x+z, y+z x+y,x+z,y+z都能够被 m m m整除,一共有多少满足题意的三元组呢?

注意:顺序不同的三元组,是不同的方案排列

数据格式

输入格式

一行共两个整数n和m.

输出格式

输出一个整数, 表示满足条件的方案数


思路

根据 x + y , x + z , y + z x+y, x+z, y+z x+y,x+z,y+z都能够被 m m m整除
我们可以得出 x ≡ y ≡ z ( m o d x\equiv y\equiv z(mod xyz(mod m ) m) m)

得出条件:

  1. x ≡ y ≡ z ( m o d x\equiv y\equiv z(mod xyz(mod m ) m) m)
  2. x , y , z ≤ n x, y, z\le n x,y,zn

两种情况:

情况一(A级):
x , y , z x, y, z x,y,z均为m的倍数
此时 x , y , z x,y,z x,y,z可以取得数的个数为 ⌊ n m ⌋ \left \lfloor \frac{n}{m} \right \rfloor mn,所以通过乘法原理得此时的方案数就是 ⌊ n m ⌋ 3 \left \lfloor \frac{n}{m} \right \rfloor^3 mn3
情况二(A级):
x , y , z x,y,z x,y,z都不是m的倍数
注:不可能 ( x , y , z ) (x,y,z) (x,y,z)中若干个是m的倍数,其余的不是,因为我们的大前提: x ≡ y ≡ z ( m o d x\equiv y\equiv z(mod xyz(mod m ) m) m)

此时,设 t = ⌊ n m ⌋ t=\left \lfloor \frac{n}{m} \right \rfloor t=mn,我们把 0 − n 0-n 0n划分成若干个长度为 m m m的区域

这时候,又分了两种情况:

情况一(B级):
n % m ! = 0 n\% m!=0 n%m!=0(如图)
在这里插入图片描述
我们会发现,选择的区域多了一块,长度为 n % m n\%m n%m,这一块一定可以选吗?

又又又分出了两种情况:

l e n = n % m len=n\%m len=n%m
在这里插入图片描述
情况一(C级):
x % m , y % m , z % m ≤ l e n x\%m,y\%m,z\%m\le len x%m,y%m,z%mlen
此时我们发现选择的区域有 t + 1 t+1 t+1个了,此时的方案数就是 ( ⌊ n m ⌋ + 1 ) 3 (\left \lfloor \frac{n}{m} \right \rfloor+1)^3 (mn+1)3
情况二(C级):
x % m , y % m , z % m ≥ l e n x\%m,y\%m,z\%m\ge len x%m,y%m,z%mlen
此时对于 t m − n tm-n tmn这一段区间肯定是选择不到的,因为 l e n = n % m len=n\%m len=n%m,而 x % m , y % m , z % m ≥ l e n x\%m,y\%m,z\%m\ge len x%m,y%m,z%mlen x , y , z x,y,z x,y,z t m − ( t + 1 ) m tm-(t+1)m tm(t+1)m区间内,一定就在 n n n的右边,就不符合 x , y , z ≤ n x, y, z\le n x,y,zn这个条件了!

所以,此时的方案数就是 ⌊ n m ⌋ 3 \left \lfloor \frac{n}{m} \right \rfloor^3 mn3

然后,我们看一下 x % m , y % m , z % m ≤ l e n x\%m,y\%m,z\%m\le len x%m,y%m,z%mlen等于多少,基于 x ≡ y ≡ z ( m o d x\equiv y\equiv z(mod xyz(mod m ) m) m),他们都是相等的,考虑其中一个即可,这里我们设 a = x % m a=x\%m a=x%m
我们利用一下题目中给的条件: ( x + y ) % m = 0 (x+y)\%m=0 (x+y)%m=0
再利用模的性质(可以看看这篇文章)得: ( x % m + y % m ) % m = 0 (x\%m+y\%m)\%m=0 (x%m+y%m)%m=0,即: 2 a % m = 0 2a\%m=0 2a%m=0
由于 a < m a<m a<m,所以 2 a < 2 m 2a<2m 2a<2m
故,有两种解: 2 a = m 或 2 a = 0 2a=m或2a=0 2a=m2a=0
对于 2 a = 0 2a=0 2a=0,即 a = 0 a=0 a=0:就是情况一(A级)
对于 2 a = m 2a=m 2a=m,即 a = m 2 a=\frac{m}{2} a=2m:此时我们解出了a,也就是 x % m = m 2 x\%m=\frac{m}{2} x%m=2m,而m是已知的,所以就可以代入求得是哪一种情况了!
不过,我们发现一个问题! x , y , z x,y,z x,y,z是整数,那么 x % m x\%m x%m也一定是整数,可是 m 2 \frac{m}{2} 2m有可能是小数,所以对于 m m m不是2的倍数时,情况2(A级)不成立!

情况二(B级):
在这里插入图片描述
这时候,很简单,还是 t t t块,所以此时的方案数就是 ⌊ n m ⌋ 3 \left \lfloor \frac{n}{m} \right \rfloor^3 mn3


前面出现了不成立的情况,所以总结一下:

  1. m m m不是2的倍数
    答案为: ⌊ n m ⌋ 3 \left \lfloor \frac{n}{m} \right \rfloor^3 mn3
  2. m m m是2的倍数
    (1) n % m = 0 n\%m=0 n%m=0 答案为: 2 ⌊ n m ⌋ 3 2\left \lfloor \frac{n}{m} \right \rfloor^3 2mn3
    (2) n % m ! = 0 n\%m!=0 n%m!=0
    \qquad m 2 > n % m \frac{m}{2}>n\%m 2m>n%m 答案为: 2 ⌊ n m ⌋ 3 2\left \lfloor \frac{n}{m} \right \rfloor^3 2mn3
    \qquad m 2 ≤ n % m \frac{m}{2}\le n\%m 2mn%m 答案为: ⌊ n m ⌋ 3 + ( ⌊ n m ⌋ + 1 ) 3 \left \lfloor \frac{n}{m} \right \rfloor^3+(\left \lfloor \frac{n}{m} \right \rfloor+1)^3 mn3+(mn+1)3

代码

#include <iostream>
#define int long long

using namespace std;

int n, m;

signed main()
{
	cin >> n >> m;
	
	int res = 0;
	int cnt = n / m;
	
	res += cnt * cnt * cnt;
	
	if (!(m & 1))
		if (n % m == 0)
			res += cnt * cnt * cnt;
		else
		{
			int q = n % m;
			if (m / 2 <= q)
				res += (cnt + 1) * (cnt + 1) * (cnt + 1);
			else
				res += cnt * cnt * cnt;
		}
		
	cout << res << endl;
}

今天就到这里了!

大家有什么问题尽管提,我都会尽力回答的!

吾欲您伸手,点的小赞赞。吾欲您喜欢,点得小关注!

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

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

相关文章

第一章 数字图像本质及基础操作

系列文章目录 第一章 图像本质及基础操作 文章目录 系列文章目录前言一、数字图像的本质二、图像基础理论1.色彩空间1.1 RGB模型1.2 HSV模型1.3 HSL模型1.4 YUV模型1.5 灰度图1.6 OpenCV中色彩空间转换 2.图片的存储3.图像参数 三、图像的基础操作及OpenCV画图1.图像的基础操作…

Hololens2开发指南

练习 - 导入和配置资源 - Training | Microsoft Learn unity需要高版本 用2019.4.30支持平台这没有openxr 用2020.3.36可以&#xff0c;2021版本也可以出现

代码随想录算法训练营第三十天 | 航班问题、二维回溯

回溯法小结 本周小结&#xff01;&#xff08;回溯算法系列三&#xff09; | 代码随想录 (programmercarl.com) 性能分析 子集问题分析&#xff1a; 时间复杂度&#xff1a;O(n 2n)&#xff0c;因为每一个元素的状态无外乎取与不取&#xff0c;所以时间复杂度为O(2n)&…

蚁群算法-车辆配载率的路径优化

车辆配送路径优化问题可描述为&#xff1a;某商超配送中心要使用一定数量的车辆对一批货物进行配送服务&#xff0c;要求在不超过车辆的额定载重量和额定容积的条件下&#xff0c;安排这些货物的装载&#xff0c;使得车辆利用率最高。 针对以上问题做出假设&#xff1a; (1) 只…

Python学习笔记(1)

《Python编程&#xff1a;从入门到实践》学习笔记 python编程软件PyCharm Community Edition 2022.3.2&#xff0c;快捷键&#xff1a;Ctrl/ 表示注释Python代码。 一、变量的命名和使用 1.变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头&#xff0c;但不能以数…

Java开发初学者实用网站

1.慕课网&#xff08;http://www.imooc.com&#xff09;&#xff1a;提供了大量的Java在线教程和视频。 优点 1.广泛的开放性&#xff1a;大规模、开放性和受众广 2.透明性&#xff1a;根据不同兴趣、准备情况和时间来学习所需课程 3.优质资源易获取性&#xff1a;让每位学生…

Python每日一练(20230504)

目录 1. 课程表 Course Schedule I 2. 课程表 Course Schedule II &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 课程表 Course Schedule I 你这个学期必须选修 numCourses 门课程&a…

linux ll命令是什么

ll并不是linux下一个基本的命令&#xff0c;它实际上是ls -l的一个别名。 # 查看指定目录下的内容&#xff0c;默认查看当前目录下内容 ls [-ald] [目录名] # 目录名不填写&#xff0c;默认为当前目录。 # -a&#xff1a;列出的全部的文件&#xff0c;包括隐藏文件 # -l&#x…

医院PACS系统源码,各种类型图像专业的图像处理功能,海量数据存储与检索

RIS/PACS系统源码 RIS/PACS系统源码在预约登记、分诊叫号、技师检查、诊断报告、临床浏览、科室管理等环节满足全院相关科室的要求。在医学影像下载、浏览、处理中满足速度快、强化常用功能、方便阅片等要求。满足放射、超声、内镜、病理等影像科室的业务需求。通过与HIS、LIS…

阿里云AMD服务器CPU:AMD EPYC Genoa 9T34处理器性能

阿里云AMD服务器AMD EPYC Genoa 9T34处理器&#xff0c;主频3.4 GHz&#xff0c;单核睿频最高3.75 GHz&#xff0c;计算性能稳定&#xff0c;阿里云百科分享AMD EPYC™ Genoa 9T34性能测评&#xff1a; 目录 AMD EPYC™ Genoa 9T34 AMD EPYC™ Genoa 9T34 阿里云AMD服务器性…

基于YOLOv4的目标检测系统(附MATLAB代码+GUI实现)

摘要&#xff1a;本文介绍了一种MATLAB实现的目标检测系统代码&#xff0c;采用 YOLOv4 检测网络作为核心模型&#xff0c;用于训练和检测各种任务下的目标&#xff0c;并在GUI界面中对各种目标检测结果可视化。文章详细介绍了YOLOv4的实现过程&#xff0c;包括算法原理、MATLA…

Windows中批量修改DNS记录

最近由于公网映射的IP需要更换&#xff0c;有一批DNS记录需要修改。对于使用Windows管理的DNS记录&#xff0c;可以使用Powershell批量导出记录更新后再批量修改。 首先使用Powershell将DNS服务器上test.local这个区域里的所有A记录导出 Get-DnsServerResourceRecord -Comput…

计算机专业大一的一些学习规划建议!

大家好&#xff0c;我是小北。 五一嗖的一下就过啦~ 对于还在上学的同学五一一过基本上意味着这学期过半了&#xff0c;很多大一、大二的同学会有专业分流、转专业等事情。 尤其是大二的时候&#xff0c;你会发现身边有些同学都加入各种实验室了&#xff0c;有忙着打ACM、学生…

初级算法-贪心算法

主要记录算法和数据结构学习笔记&#xff0c;新的一年更上一层楼&#xff01; 初级算法-贪心算法 一、分发饼干二、摆动序列三、最大子序和四、买卖股票最佳时机五、跳跃游戏六、跳跃游戏二七、k次取反后最大化的数组和八、加油站九、分发糖果十、柠檬水找零十一、根据身高重建…

Python实现哈里斯鹰优化算法(HHO)优化随机森林分类模型(RandomForestClassifier算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 2019年Heidari等人提出哈里斯鹰优化算法(Harris Hawk Optimization, HHO)&#xff0c;该算法有较强的全…

SPSS如何检验非参数之案例实训?

文章目录 0.引言1.卡方检验2.二项检验3.双独立样本检验4.多独立样本检验5.双配对样本检验6.多配对样本检验7.游程检验8.单样本K-S检验 0.引言 因科研等多场景需要进行绘图处理&#xff0c;笔者对SPSS进行了学习&#xff0c;本文通过《SPSS统计分析从入门到精通》及其配套素材结…

文献集锦 | 非因空间多组学技术在胰腺癌肿瘤微环境中的研究策略

胰腺导管腺癌(PDAC)仍然是一种难治性疾病&#xff0c;5年总生存率&#xff08;OS&#xff09;仅不到9%&#xff0c;且诊断时多为晚期&#xff0c;治疗手段有限&#xff0c;除了传统的手术切除、放化疗之外&#xff0c;目前越来越多采用新辅助治疗的方法。利用空间组学分析平台深…

报错yarn create @umijs/umi-app Command failed, 文件名、目录名或卷标语法不正确

报错内容&#xff1a; 报错解决&#xff1a; 方法一&#xff1a; 1、我是用 npm 安装的 yarn &#xff1a; npm i yarn tyarn -g 2、我重新设定了 npm 全局包的安装位置 和 缓存位置。 // 查看 npm 全局包的安装位置 npm config get prefix // 查看 npm 缓存位置 npm co…

DTC 2023 | GBASE:构筑完备产品体系 释放数据全量价值

2023年4月7-8日&#xff0c;第十二届『数据技术嘉年华』(DTC 2023) 在京盛大召开。GBASE南大通用受邀参会&#xff0c;携核心产品亮相展区&#xff0c;并就数据库热门话题发表主题分享。 本届大会以“开源融合数字化——引领数据技术发展&#xff0c;释放数据要素价值”为议题…

mvn help:effective-pom命令的作用

无论 POM 文件中是否显示的声明&#xff0c;所有的 POM 均继承自一个父 POM&#xff0c;这个父 POM 被称为 Super POM。在pom的继承关系中&#xff0c;子pom可以覆盖父pom中的配置&#xff1b;如果子pom没有覆盖&#xff0c;那么父pom中的配置将会被继承。按照这个规则&#xf…