首页 > 其他分享 >不知道什么题的题解

不知道什么题的题解

时间:2024-04-07 09:04:06浏览次数:24  
标签:right 题解 什么 long times cdots max 知道 left

多组测试数据,问你满足 \(lcm\left ( x,y\right ) = n\) 的数对 \(\left ( x,y\right )\) 的数量。

由于唯一分解定理,我们不妨令 \(x = p_{1}^{a_1} \times p_{2}^{a_2} \times \cdots \times p_{i}^{a_i}\),同理, \(y = p_{1}^{b_1} \times p_{2}^{b_2} \times \cdots \times p_{i}^{b_i}\),那么 \(lcm\left ( x,y\right ) = p_1^{\max\left ({a_1,b_1}\right )}\times p_2^{\max\left ({a_2,b_2}\right )}\times \cdots \times p_n^{\max\left ({a_n,b_n}\right )}\)。

当 \(a_i> b_i\) 时,\(b_i\) 的可选择范围为 $\left [ 0,\max \left ( a_i,b_i\right )\right ] $ 共 \(\max \left ( a_i,b_i\right )+1\) 种;同理当 \(a_i< b_i\) 时,\(a_i\) 也有 \(\max \left ( a_i,b_i\right ) +1\)种选择。

但是 \(a_i=b_i\) 的情况被重复计算了一次,所以对于素数 \(n\),总共有 \(2\times \max \left ( a_i,b_i \right ) +1\) 种选择。

所以,总共有 \(\prod \left (2\times \max \left ( a_i,b_i \right ) +1\right )\) 对 \(\left ( x,y\right )\),使得 \(lcm\left ( x,y\right ) = n\)。

如何写代码?对 \(n\) 分解质因数,对每一个质因数带入公式求积即可。

一定要注意的地方

对于这道题的 \(\left ( i,j\right )\),有了 \(i<j\) 的解就一定有 \(i>j\) 的解。但是题目求的是 \(i\le j\),所以我们要注意删掉一些解。所以解就应该先加上 \(i=j\) 的 \(1\) 然后再除以 \(2\)。感谢肖子卓同学,你是我的神!

#include<bits/stdc++.h>
using namespace std;
long long T;
bool Is_Prime(int x){
	if(x==1){
		return 0;
	}
	if(x==2){
		return 1;
	}
	for(int i=2;i<=sqrt(x);i++){
		if(x%i==0){
			return 0;
		}
	}
	return 1;
}
int main(){
	cin>>T;
	long long cnt=0;
	while(T--){
		long long n;
		cin>>n;
		long long sum=1;
		for(int i=1;i<=n;i++){
			if(n%i==0&&Is_Prime(i)){
				int k=0;
				while(n%i==0){
					n/=i;
					k++;
				}
				sum*=(k*2+1);
			}
		}
		cout<<"Case "<<++cnt<<": "<<(sum+1)/2<<endl;
	}
}

朴素易懂代码。

标签:right,题解,什么,long,times,cdots,max,知道,left
From: https://www.cnblogs.com/zxcqwq/p/18118312

相关文章

  • dd if=devzero of=的含义是什么?Linux 下的dd命令使用详解
    ddif=/dev/zeroof=的含义是什么?Linux下的dd命令使用详解一、dd命令的解释dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2参数注释:1.if=文件名:输入文件名,缺省为标准输入。即指定源文......
  • 第33次CSP认证500分题解
    近年来最简单的一次\(CSP\)认证,\(3\)个小时现场满分直接拿下。1、没啥好说的,直接开桶拿下。#include<bits/stdc++.h>usingnamespacestd;#defineN1000010template<classT>inlineTread(T&a){Tx=0,s=1;charc=getchar();while(!isdigi......
  • ABC348F 题解
    一些注意点:一看到这种题就应该往bitset的方向想。如果用bitset,就应该跳脱之前的思维,尝试从最朴素的暴力重新想起。看到这道题,发现直接做非常的不可做的样子,考虑bitset。我们可以先枚举左端点\(l\)。这样,当我们枚举\(j\)时,对于所有的\(k\)使得\(a_{k,j}=a_......
  • 计算机出现msvcr110.dll丢失是什么意思?七种方法解决msvcr110.dll丢失
    msvcr110.dll文件是一个动态链接库(DLL)文件,由MicrosoftCorporation开发。它是VisualC++RedistributableforVisualStudio2012的必要部分,包含了C运行时库函数的代码,这些函数为执行C/C++应用程序提供了基础服务。这个文件对于许多使用VisualStudio2012编译的应用程序来说......
  • 无需什么切片技术,一键盖电子骑缝章
    一般盖骑缝章,如果不用专门的电子公章软件,要使用PS的切片技术把每页的骑缝章切好,然后把每片插入到对应的页的相应位置,这种方法非常繁锁,效率非常低。下面是利用e-章宝(易友EU3000智能盖章软件)盖电子骑缝章的步骤,无需了解什么切片技术:第一步:制作需要盖的电子印章一般是先扫描公......
  • 网站使用CDN出现ttf woff等字体跨域问题解决方案
    如果cdn域名+资源路径是可以通过浏览器url地址栏打开的那么一般是因为nginx配置的原因,找到nginx的配置文件添加以下代码:# 允许指定域名访问;location ~ .*.(eot|ttf|ttc|otf|eot|woff|woff2|svg)(.*) { add_header Access-Control-Allow-Origin http(s)://......
  • arch安装教程+部分问题解决
    arch安装教程+部分问题解决网络配置#进入iwctliwctl#获取device名称我这里是wlan0,后面注意wlan0替换成你自己devicedevicelist#扫描附近wifistationwlan0scan#获取所有可连接wifi名字stationwlan0get-networksstationwlan0connect[wifi名]#输入密码......
  • CF1149D Abandoning Roads 题解
    Description一张\(n\)个点\(m\)条边的无向图,只有\(a,b\)两种边权(\(a<b\)),对于每个\(i\),求图中所有的最小生成树中,从\(1\)到\(i\)距离的最小值。\(2\leqn\leq70,n-1\leqm\leq200,1\leqa<b\leq10^7\)。Solution先考虑一个最小生成树是什么样的形态,显然保留边权......
  • 什么是微服务
    微服务架构演变单体架构将业务的所有功能集中在一个项目中开发,打包一个包部署优点:架构简单、部署成本低缺点:耦合度高分布式架构根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务优点:降低服务耦合、有利于服务升级拓展缺点:架构复杂,难度大,适合大......
  • 编程小白必须知道的 15 个强大的 Python 单行代码
    这里写目录标题三元运算符为多个变量赋值交换变量的值交换列表中的元素替换列表中的元素列表推导式与三元运算结合使用列表推导式从列表创建子列表更改列表元素类型使用列表推导式输出文件列表平展多维列表字典推导式集合推导式将文件读入生成器使用Python-c命令的单......