CCPC2020 - 秦皇岛 - G. Good Number (数学)

亚历克斯喜欢数字。

亚历克斯认为,正整数 x x x 是好数,当且仅当 ⌊ x k ⌋ \lfloor \sqrt[k]{x} \rfloor kx 整除 x x x

你能告诉他不超过 n n n 的正整数的个数吗?

输入

输入的第一行给出了测试用例的数量 T ( 1 ≤ T ≤ 10 ) T (1 \le T \le 10) T(1T10) 。接下来是 T T T 个测试用例。

对于每个测试用例,唯一的一行包含两个整数 n n n k ( 1 ≤ n , k ≤ 1 0 9 ) k (1 \le n,k \le 10^9) k(1n,k109)

输出

对于每个测试用例,输出一行包含 "Case #x: y"的内容,其中 x \texttt{x} x 是测试用例编号(从 1 1 1 开始), y \texttt{y} y 是答案。

Example
input

2
233 1
233 2

output

Case #1: 233
Case #2: 43

这道题需要找规律,如果打表把所有的能够符合要求的数打出来的话,就会发现他们有的是对应了连续几个 ⌊ x k ⌋ \lfloor \sqrt[k]{x} \rfloor kx
比如n为250,k为2的情况。
在这里插入图片描述
就比如 9 9 9 对应 3 3 3 12 12 12 15 15 15 也对应 3 3 3
这里这么看, 3 3 3 k k k 次方对应了 9 9 9 ,而 4 4 4 的k次方对应了 16 16 16
所以发现 [ n k , ( n + 1 ) k ) [ n^k , (n+1)^k) [nk,(n+1)k) 这个区间内开 k k k 次方,下取整后能够得到的数都是 n n n。所以就只需要求每一个区间内有多少能够整除 n n n 的数,我们看到 9 9 9 12 12 12 15 15 15,每个都相差了 3 3 3,所以对于区间 [ a , b ] [a,b] [a,b],能够被 n n n 整除的个数就是 ⌊ b n ⌋ − ⌊ a − 1 n ⌋ \lfloor\frac{b}{n}\rfloor - \lfloor\frac{a-1}{n}\rfloor nbna1

这么算完之后,如果遇见了 x k < = n < = ( x + 1 ) k x^k <= n <= (x+1)^k xk<=n<=(x+1)k 的情况,那么就在这一次取完答案之后跳出。

并且注意,因为题目给出要求 k k k 是小于等于 1 e 9 1e9 1e9,但是当 k k k 大于等于 31 31 31 的时候,整个 i n t int int 范围内的数都只能下取整到 1 1 1 了,所以这种情况直接特判。
还有 k = 1 k=1 k=1 的时候,直接输出 n n n

至于下取整,直接强转 i n t int int 即可。

#include<iostream>
#include<map>
#include<cmath>
using namespace std;
#pragma warning (disable:4996)
#define ll long long

ll qmi(ll a, ll k) {//需要快速幂,不然TLE
	ll res = 1;
	while (k) {
		if (k & 1)res = (ll)res * a;
		k >>= 1;
		a = (ll)a * a;
	}
	return res;
}

int main() {
	int T; cin >> T;
	for (int cases = 1; cases <= T; cases++) {
		int n, k; cin >> n >> k;

		if (k == 1 || k >= 31) {
			printf("Cases #%d: %d\n", cases, n);
			continue;
		}

		int res = 0;
		int i = 0;
		while (++i) {
			ll l = qmi(i, k), r = qmi(i + 1, k) - 1;
			
			if (l <= n && n <= r) {
				if (l == n)res++;
				else {
					res += (n - l) / i + 1;
				}
				break;
			}

			res += (r - l) / i + 1;
		}

		printf("Case #%d: %d\n", cases, res);
	}
	return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Pytorch 下载失败原因

错误信息&#xff1a; ERROR: Could not find a version that satisfies the requirement torch (from versions: none) ERROR: No matching distribution found for torch 解决方案&#xff1a; 在官网看到&#xff0c;它需要python3.8-3.11的环境。过高和过低的版本都不…

python学习16:python中的布尔类型和条件语句的学习

python中的布尔类型和条件语句的学习 1.布尔&#xff08;bool&#xff09;类型的定义&#xff1a; 布尔类型的字面量&#xff1a;True表示真&#xff08;是、肯定&#xff09; False表示假&#xff08;否、否定&#xff09; True本质上是一个数字记作1&#xff0c;False记作0 …

208基于matlab的多目标遗传算法的无人机航路规划

基于matlab的多目标遗传算法的无人机航路规划。在三维航路中进行航路代价估计&#xff0c;综合考虑路径长度、隐蔽性、危险度&#xff0c;规划出最优路径。输出3D规划路径。程序已调通&#xff0c;可直接运行。 208 多目标遗传算法 无人机航路规划 - 小红书 (xiaohongshu.com)

力扣---网络延迟时间---迪杰斯特拉,弗洛伊德floyd

首先推荐博客&#xff1a;图论最短路径专题&#xff08;力扣743、5888&#xff09;_力扣 最短路径-CSDN博客 迪杰斯特拉算法&#xff1a; 太久没有做图论的题了&#xff0c;&#xff0c;临时抱佛脚。。 这道题可以转化为max{点x到点k的距离}。因为带权图&#xff08;权值为正…

手机投屏到windows11电脑

1 安装无线投影组件 2 电脑端打开允许其他设备投影的开关 3 手机找到投屏选项 4 手机搜索可用设备连接即可 这里的官方文档给的不太好,给了一些让人眼花撩乱的信息,以下是经过整合的有效信息

Linux 给网卡配置ip

ip addr | grep eth9 ifconfig eth9 10.0.0.2 netmask 255.255.255.0 up

(十三)图像的拉普拉斯梯度锐化

环境&#xff1a;Windows10专业版 IDEA2021.2.3 jdk11.0.1 OpenCV-460.jar 系列文章&#xff1a; &#xff08;一&#xff09;PythonGDAL实现BSQ&#xff0c;BIP&#xff0c;BIL格式的相互转换 &#xff08;二&#xff09;BSQ,BIL,BIP存储格式的相互转换算法 &#xff08;三…

U盘位置不可用,如何轻松应对数据恢复难题

在日常工作和生活中&#xff0c;U盘作为一种便捷的存储设备&#xff0c;经常被用于数据传输和备份。然而&#xff0c;有时我们可能会遇到这样一个问题&#xff1a;当插入U盘时&#xff0c;系统提示“位置不可用”或“无法访问”&#xff0c;这让人倍感困扰。面对这种情况&#…

JavaScript:快速入门

1. 数据类型 /** * 数据类型: number(包含整数、小数) * string&#xff08;字符串类型&#xff09; * boolean&#xff08;布尔类型&#xff09; * object&#xff08;对象类型&#xff09; * function&#xff08;函数类型&#xff09; …

使用python将pdf插入到docx中

from pdf2image import convert_from_path from docx import Document from docx.shared import Inches,Cm# 将PDF转换为图片 pages convert_from_path(4.pdf, 200) # 200是DPI&#xff0c;可以根据需要调整doc Document()# 计算图片在docx中应该显示的宽度 img_width Cm(2…

单细胞RNA测序(scRNA-seq)细胞分离与扩增

单细胞RNA测序入门可以查看以下文章&#xff1a; 单细胞RNA测序&#xff08;scRNA-seq&#xff09;工作流程入门 1. 单细胞的分离 如何获得单细胞&#xff0c;从而进行下一步的测序过程&#xff1f;具体有以下几种方法&#xff1a; 一、流式细胞仪(FACS)方法 常用的方法之…

深度学习基础模型之Mamba

Mamba模型简介 问题&#xff1a;许多亚二次时间架构(运行时间复杂度低于O(n^2)&#xff0c;但高于O(n)的情况)&#xff08;例如线性注意力、门控卷积和循环模型以及结构化状态空间模型&#xff08;SSM&#xff09;&#xff09;已被开发出来&#xff0c;以解决 Transformer 在长…

LabVIEW转动设备故障诊断系统

LabVIEW转动设备故障诊断系统 随着工业自动化技术的不断进步&#xff0c;转动设备在电力、化工、船舶等多个行业中扮演着越来越重要的角色。然而&#xff0c;这些设备在长期运行过程中难免会出现故障&#xff0c;如果不能及时诊断和处理&#xff0c;将会导致生产效率下降&…

05. 【Android教程】Android 程序签名打包

在上一章&#xff0c;我们创建了自己的 Android 工程&#xff0c;并成功的在模拟器中运行起来。同时提到&#xff0c;工程目录中有一个 bin 目录&#xff0c;运行之后我们可以在此目录下找到我们的 apk。那么不难想到&#xff0c;我们在点“Run”之后&#xff0c;系统会编译我们…

[技术笔记] Flash选型之基础知识芯片分类

1、按照接口分类 分为 Serial串口Flash 和 Parallel并口Flash&#xff1b; 市场大量使用Serial Flash&#xff1b;价格便宜&#xff1b;已满足系统对数据读写速度的要求&#xff1b; Serial Flash已经可以代表 NOR Flash&#xff1b; 小知识&#xff1a; 1&#xff09;在…

深度学习算法概念介绍

前言 深度学习算法是一类基于人工神经网络的机器学习方法&#xff0c;其核心思想是通过多层次的非线性变换&#xff0c;从数据中学习表示层次特征&#xff0c;从而实现对复杂模式的建模和学习。深度学习算法在图像识别、语音识别、自然语言处理等领域取得了巨大的成功&#xf…

Linux基础篇:VMware虚拟机3种常用的网络模式介绍

VMware虚拟机3种常用的网络模式介绍 VMware虚拟机提供了几种不同的网络连接模式&#xff0c;以满足不同场景下的网络需求。以下是VMware虚拟机的三种主要网络模式&#xff1a; 1.桥接模式&#xff08;Bridged Mode&#xff09;网卡名称VMnet0 桥接模式允许虚拟机直接连接到物…

鸿蒙OS开发实例:【瀑布流式图片浏览】

介绍 瀑布流式展示图片文字&#xff0c;在当前产品设计中已非常常见&#xff0c;本篇将介绍关于WaterFlow的图片浏览场景&#xff0c;顺便集成Video控件&#xff0c;以提高实践的趣味性 准备 请参照[官方指导]&#xff0c;创建一个Demo工程&#xff0c;选择Stage模型熟读Har…

解决前后端通信跨域问题

因为浏览器具有同源策略的效应。 同源策略是一个重要的网络安全机制&#xff0c;用于Web浏览器中&#xff0c;以防止一个网页文档或脚本来自一个源&#xff08;域、协议和端口&#xff09;&#xff0c;获取另一个源的数据。同源策略的目的是保护用户的隐私和安全&#xff0c;防…

PostgreSQL到Doris的迁移技巧:实时数据同步新选择!

PostgreSQL可以说是目前比较抢手的关系型数据库了&#xff0c;除了兼具多样功能和强大性能之外&#xff0c;还具备非常优秀的可扩展性&#xff0c;更重要的是它还开源&#xff0c;能火不是没有理由的。 虽然PostgreSQL很强大&#xff0c;但是它也有短板&#xff0c;相对于专业…