主页
搜索
最近更新
数据统计
申请密钥
系统公告
1
/
1
请查看完所有公告
题解:P12892 [蓝桥杯 2025 国 Java B] 弹跳鞋
最后更新于 2025-07-31 11:47:02
作者
weifengzhaomi
分类
题解
题解
P12892
复制 Markdown
查看原文
删除文章
更新内容
~~一道二分水题。~~ ## 思路 容易发现,答案具有单调性。 我们假设答案为 $x$。 那么,$x - 1$ 肯定不能到达 $L$ 的位置,但 $x + 1$ 肯定能到达 $L$ 的位置。 **所以,我们考虑二分。** 我们确定好二分的边界:$l = 1,r = 2 \times 10 ^ 9$。 然后,我们如何判断答案合不合法? 显然,我们充 $x$ 的电,最多能到达 $\lfloor \frac{x \times (x + 1)}{2} \rfloor$ 的格子。 然后,我们根据这个条件去二分,最后我们再暴力向上寻找与 $L$ 奇偶性相同的答案就可以了。 ## 代码: ```cpp #include<bits/stdc++.h> using namespace std; #define int long long int n,l,r,m; signed main(){ scanf("%lld",&n),r = 2e10 + 1; while (l + 1 < r){ m = (l + r) / 2; if (m * (m + 1) / 2 >= n) r = m; else l = m; } while ((r * (r + 1) / 2) % 2 != n % 2) r++; printf("%lld\n",r); } ```
正在渲染内容...
点赞
0
收藏
0