【Kuangbin数论】阿拉丁和飞毯

news2024/11/15 21:45:11

4577. 阿拉丁和飞毯 - AcWing题库

题意:

思路:

就是去求x和y

使得

1.x!=y

2.x*y=a

3.min(x,y)=b

一开始想的是去根号n地枚举a的约数 ,然后直接统计

但是这样肯定T,所以换成dfs枚举约数去了

但是也T了

首先a*a<=b的话直接特判成0,因为第三个条件

这道题我们要求约数个数,就不需要去枚举所有的约数

我们去分解质因数

ans不断地乘(质因子个数+1)就行

但是还有第三个条件需要满足

因此我们去去掉所有小于b的约数就行

因为前面特判过了,因此b一定是小于根号a的,保证了复杂度

时间复杂度为O(T*根号a)

因为特判过了,所以这个复杂度不一定严谨

Code:

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int mxn=1e6+10;
vector<pair<int,int> > v;
int a,b,len=0,T=0,ta;
int vis[mxn],prime[mxn];
void init(int n){
	for(int i=2;i<=n;i++){
		if(!vis[i]) prime[++len]=i;
		for(int j=1;prime[j]<=n/i;j++){
			vis[i*prime[j]]=1;
			if(i%prime[j]==0) break;
		}
	}
}
void solve(){
	v.clear();len=0;
	cin>>a>>b;
	if(b*b>=a){
		cout<<"Case "<<++T<<": "<<0<<'\n';
		return;
	}
	ta=a;
	for(int i=1;prime[i]<=a/prime[i];i++){
		if(a%prime[i]==0){
			int s=0;
			while(a%prime[i]==0) a/=prime[i],s++;
			v.push_back({prime[i],s});
		}
	}
	if(a>1) v.push_back({a,1});
	int ans=1;
	for(int i=0;i<v.size();i++) ans*=(v[i].second+1);
	ans/=2;
	for(int i=1;i<b;i++){
		if(ta%i==0) ans--;
	}
	cout<<"Case "<<++T<<": "<<ans<<'\n';
}
signed main(){
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	int __=1;cin>>__;
	init(mxn);
	while(__--)solve();return 0;
}

总结:

1e12这种复杂度的去枚举约数肯定是要去dfs枚举

能特判的就先特判掉,降低复杂度

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

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

相关文章

前端 | 手把手教你装饰你的github profile(github 首页)

1.创建存储库 您可以创建一个与您的 github 帐户名同名的存储库 添加README文件 2.编辑README.md 现在&#xff0c;可以根据自己的喜好修改 repo 中的自述文件&#xff0c;但我在考虑包含哪些信息时查看了其他开发人员的资料。通常包括简短的介绍、使用的技术堆栈和联系方式…

Buildroot编译hisi平台根文件系统

Buildroot编译hisi平台根文件系统 文章目录1. 下载Buildroot源码2. Menuconfig配置3. 编译Buildroot3.1 手动下载软件包3.2 kernel header 报错3.3 arm-hisiv300-linux-gcc-ar&#xff1a;cannot find plugin liblto_plugin.so3.4 /media/data/hisi/buildroot-2022.02.8/output…

C++类的多种构造函数

目录默认构造函数普通构造函数拷贝构造函数转换构造函数移动构造函数举例两个场景下面以Complex 复数类来学习C类中的各种构造函数; #include <iostream> using namespace std;//复数类 class Complex{friend ostream & operator<<(ostream &out, Complex…

2022年终结——人生中最美好的一站

文章目录前言回顾2022工作上学习上投资上生活上展望2023工作学习投资生活总结有一种责任与压力&#xff0c;叫做上有老下有小&#xff0c;但有一种幸福也叫做上有老下有小&#xff0c;当你遭遇挫折与困难时&#xff0c;这些“老小”以及那个同龄的“她”是你坚实的后盾&#xf…

Redisson中的“琐事”

文章目录前言锁分类Redisson可重入锁&#xff08;Reentrant Lock&#xff09;公平锁&#xff08;Fair Lock&#xff09;联锁&#xff08;MultiLock&#xff09;红锁&#xff08;RedLock&#xff09;读写锁&#xff08;ReadWriteLock&#xff09;信号量&#xff08;Semaphore&am…

【C++】左值、右值、语义移动和完美转发

右值引入的目的是为了对象移动&#xff1a; 因为在很多情况下&#xff0c;对象拷贝会经常发生&#xff0c;但是很多对象在拷贝后就直接被销毁了。这对性能是一个很大损耗。在重新分配内存的时候&#xff0c;从旧的内存将元素拷贝到新的内存中是不必要的。更好的方法是移动元素。…

论文投稿指南——中文核心期刊推荐(天文、测绘学)

【前言】 &#x1f680; 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊 &#x1f384; 在期刊论文的分布中&#xff0c;存在一种普遍现象&#xff1a;即对于某一特定的学科或专业来说&#xff0c;少数期刊所含…

使用Kalibr问题汇总:ModuleNotFoundError: No module named ‘wx‘

问题1&#xff1a; 报错&#xff1a;/kalibr_ws/src/Kalibr/Schweizer-Messer/sm_python/python/sm/PlotCollection.py", line 4, in import wx ModuleNotFoundError: No module named ‘wx’ 解决&#xff1a; sudo apt-get install python3-wxgtk4.0问题2&#xff1…

MySQL补齐函数LPAD和RPAD之SQLite解决方案

工作中经常需要对数据进行清洗&#xff0c;并对个别字段进行格式化处理&#xff0c;像 字符串左右补齐。MySQL数据库自带有LPAD()、RPAD()&#xff0c;而SQLite数据库没有的相应函数&#xff0c;需要自己转换。 目录 1、MySQL数据库 1.1、MySQL左右补全函数 1.2、实践验证 …

阶段性回顾(5)与一些题目实例(数组合并,有序判断,删除元素,进制问题等)

tips 1. 内存栈区的使用习惯是先使用高地址&#xff0c;再使用低地址。并且你还要清楚&#xff1a;随着数组下标的增大&#xff0c;其元素的地址也是在不断变高&#xff1b;对于一个占多个内存单元的变量进行取地址&#xff0c;取出来的是其所占内存空间最低地址的内存单元的地…

Python内存机制 -- = 赋值操作

Python内存机制 python的万物皆对象可不只是说说而已。 1. 预备知识&#xff1a; id()&#xff1a;可以将id()理解为C语言中的*&#xff0c;其返回当前对象在内存中的地址。 int p id(object) # id函数返回对象object在其生命周期内位于内存中的地址&#xff0c;id函数的参数…

Python数据分析案例18——化学分子数据模型(机器学习分类问题全流程)

1. 引言 1.1设计背景 对分子进行分类&#xff0c;对于筛选特定疾病的候选药物是至关重要的。传统的机器学习算法可以对分子进行分类&#xff0c;但是分子不能直接作为机器学习模型的输入&#xff0c;需要进行大量的实验从分子中得到一系列的分子特性。将分子特征使用数字化进…

47-Jenkins-终止构建并设置构建结果

终止构建并设置构建结果前言获取构建结果终止构建并设置构建状态权限问题解决前言 本篇来学习Jenkins终止构建的方法&#xff0c;使用场景&#xff1a;根据前一个构建状态&#xff0c;判断当前构建是否运行 获取构建结果 上次构建结果&#xff1a;currentBuild.getPreviousB…

【LeetCode题目详解】(五)144.二叉树的前序遍历、94.二叉树的中序遍历、145.二叉树的后序遍历、104.二叉树的最大深度、110.平衡二叉树

目录 一、力扣第144题&#xff1a;二叉树的前序遍历 1.解题思路 2.解题代码 二、力扣第94题&#xff1a;二叉树的中序遍历 三、力扣第145题&#xff1a;二叉树的后序遍历 四、力扣第104题&#xff1a;二叉树的最大深度 1.解题思路 2.解题代码 五、力扣第110题&#xff1…

抖音直播间弹幕rpc学习

目标url 随便找个直播间即可。 https://live.douyin.com/198986091107 接口分析 首先并没有在xhr下找到对应的接口 因为采用了websocket来传输信息。切换到ws即可看到 消息下&#xff0c;可以看到16进制的数据在源源不断地增加。 那么我们只要找到反序列化后的数据&…

在wsl下开发T113的主线linux(4)-编译kernel

接下来编译kernel&#xff0c;编译过程可能会出现缺少命令的报错&#xff0c;大概是下面这几个 sudo apt update sudo apt install flex bison bc libncurses-dev 目前linux主线的最新版本并没有适配t113的相关外设驱动&#xff0c;虽然能启动并串口打印&#xff0c;但其他的…

在单选按钮上实现双击效果

如果想让你的用户体验更加极致&#xff0c;可以考虑在对话框上的单选按钮上实现双击效果&#xff0c;以此作为”选中 确定”&#xff08;或者是选中 下一页&#xff0c;或者是选中 完成等&#xff09;的快捷方式。 看看我们需要怎么做 下面是一个对话框模板以及它对应的对…

3.服务注册和远程调用-Nacos[作为注册中心]

1.SpringCloud Alibaba-Nacos[作为注册中心] Nacos 是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现、配置管理和服务管理 平台。他是使用 java 编写。需要依赖 java 环境 Nacos 文档地址: https://nacos.io/zh-cn/docs/quick-start.html 下载 nacos-server https://…

HCIA作业整理(2022.12.29)

一、特殊的ip地址&#xff1a; 1.环回地址&#xff1a;127.0.0.1-127.255.255.254 2.受限广播地址&#xff1a;255.255.255.255 3.直接广播地址&#xff1a;主机位全为1、192.168.1.X/24 --- 192.168.1.255 4.网段&#xff1a;主机位全0 --- 192.168.1.X/24 --- 192.168.1…

STL剖析(一):体系结构概览

一.什么是STL? STL全称是Standard Template Library&#xff0c;它属于泛型编程的范畴&#xff08;泛型编程的代表性作品&#xff09;&#xff0c;泛型编程旨在编写独立于数据类型的代码&#xff0c;也就是说代码中的数据类型只有在编译的时候才会确定&#xff0c;否则为一个…