题解:P12892 [蓝桥杯 2025 国 Java B] 弹跳鞋
chenxi2009 · · 题解
思路
水一篇题解。
容易发现不会有无解的情况:充能
我们要求最少充能的能量。显然充能
我们有一个结论:对于
但是上述有合法的
二分上界是
代码
Java 代码编写过程中使用了生成式 AI 作为辅助工具。
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
long L = scanner.nextLong();
long l = 1,r = 2000000000;
while(l < r){
long mid = (l + r) / 2;
if(prefix_sum(mid) >= L) r = mid;
else l = mid + 1;
}
while(prefix_sum(l) % 2 != L % 2) l ++;
System.out.println(l);
}
private static long prefix_sum(long x){
return x * (x + 1) / 2;
}
}
C++ 代码
#include<bits/stdc++.h>
using namespace std;
long long L,l,r,mid;
inline long long preffix_sum(long long x){
return x * (x + 1) / 2;
}
int main(){
scanf("%lld",&L);
l = 1,r = 2e9;
while(l < r){
mid = (l + r) / 2;// (l+r) 会超过 int 范围
if(preffix_sum(mid) >= L) r = mid;
else l = mid + 1;
}
while(preffix_sum(l) % 2 != L % 2) l ++;
printf("%d\n",l);
return 0;
}