首页 > 试题广场 >

幂次进近

[编程题]幂次进近
  • 热度指数:2586 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定 t 次询问,每次询问给出两个正整数 nk
请你找到最小的正整数 m ,使得 n-m^k绝对值最小。

输入描述:
第一行有一个整数 t\ (\ 1 \leq t \leq 10^5\ )
随后 t 行,每行两个整数 n,k\ (\ 1 \leq n,k \leq 10^{18}\ )


输出描述:
输出 t 行,每行一个正整数 m
示例1

输入

3
6 2
1 1
78 3

输出

2
1
4
示例2

输入

3
114 514
1000000000 2
1000000000000000000 3

输出

1
31623
1000000

备注:
如果你使用 python 编写代码,请提交到 pypy3
头像 BeauWill
发表于 2026-02-04 00:14:27
可能不是正解!由于k>=1,n-pow(m, k)显然单调,于是想着二分查找第一个n-pow(m, k)大于0的m,然后比较此时二分结束的l和l - 1,答案m一定在这两之中用Python写就不需要实现高精度了,记得用PyPy3解释器,Python3解释器太慢了 import sys inp 展开全文
头像 carson_flute
发表于 2026-02-04 12:09:27
题目描述 给定正整数 和 ,求一个正整数 ,使得 最小。若存在多个 使得差值相同,输出任意一个即可(通常取较小者,但本题数据保证唯一最优或按实现逻辑可过)。 本题是考察整数快速幂 + 二分搜索 + 溢出防御的题,难度中等偏上 核心思路 核心观察 函数 在 时是单峰函数:先递减后递增。 展开全文
头像 Silencer76
发表于 2026-02-04 09:42:15
三分 注意区间右端点的取值,太大了会爆精度。 #include <iostream> #include <algorithm> #include <cmath> using namespace std; using ld=long double; using ll 展开全文
头像 YunBaichuan
发表于 2026-02-04 11:18:53
思路:数学题,主要是精度和特判。第一个特判就是,此时令得到结果为0,这就是最小了;第二个特判就不好想了,当时,我们直接输出1即可,为什么?因为当时,对于来说,会超过题目的,并且差距会越来越大,所以说为了得到最小的结果,m只能取1 然后就可以直接算根了,为什么?因为题目给的是先减后增的,我们也可以在d 展开全文
头像 pandaC222
发表于 2026-02-04 14:10:14
本题数比较大,所以可以用py解决,但是py也需要特判三个点,不然会超时k=1时直接输出nk>60直接输出1,因为 (2**61 > 1e18),大于 60 的 k,整数根可能只有 1 n=1直接输出1代码如下: def fastpow(a,b): ans=1 while 展开全文
头像 quchen666
发表于 2026-02-04 14:19:56
#include <bits/stdc++.h> using namespace std; const int N=3e5+10; const int mod = 998244353; typedef long long ll; typedef unsigned long long ul 展开全文
头像 为芙宁娜献出心脏
发表于 2026-02-04 17:35:54
这道题的思路还是比较一眼的,因为范围是1e18,而2的60次方就已经大于1e18了 所以如果k>60的话就肯定直接输出1 如果是k=1的话就直接输出n 剩余情况通过二分寻找最大的位置mid使得mid ^ k <= n,这样子我们可以比较l和l+1的情况来选择符合题意的位置 但是问题是这里 展开全文
头像 永恒学者
发表于 2026-02-04 22:23:36
//算法练习No.9 //数学构造+边界处理 #include <iostream> #include <cmath> using namespace std; typedef __int128_t int128; void solve() { long long 展开全文
头像 zzl064
发表于 2026-02-04 22:52:21
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int t 展开全文