2019牛客国庆集训派对day3 时间旅行(思维)
发布日期:2021-06-30 10:33:02 浏览次数:2 分类:技术文章

本文共 955 字,大约阅读时间需要 3 分钟。

现在 B o b Bob Bob在数轴点 t 0 t_0 t0,要回到 [ 0 , h 0 ] [0,h_0] [0,h0]

当处于数轴上 t t t点时,可以选择一个 x x x满足 ⌈ x h ⌉ ∗ h < = c \lceil \frac{x}{h} \rceil*h<=c hxh<=c

时间机器会在 [ 0 , x ] [0,x] [0,x]随机选择一个数 y y y回到 t − y t-y ty处,同时燃料变成 c − y c-y cy

现在为了保证能回到 [ 0 , h 0 ] [0,h_0] [0,h0],求出最大的距离 T T T


可以想象,如果点 k k k无法回到 [ 0 , h 0 ] [0,h_0] [0,h0],那么 k k k以后的点也必然不能

因为时间机器是完全随机的,那么可以假定最坏情况,每次走 1 1 1

那么就要求 [ h 0 + 1 , k − 1 ] [h_0+1,k-1] [h0+1,k1]都是完全保证能回到 [ 0 , h 0 ] [0,h_0] [0,h0]

我们再看看这个式子 ⌈ x h ⌉ ∗ h < = c \lceil \frac{x}{h} \rceil*h<=c hxh<=c

进一步可以得到 x x x的取值范围是 [ 0 , c − c % h ] [0,c-c\%h] [0,cc%h]

换句话说,当 c < h c<h c<h时, x x x取值范围永远是 0 0 0,走不动,所以无法回到 [ 0 , h 0 ] [0,h_0] [0,h0]

那么当 c > h c>h c>h呢??因为时间机器的随机性,我们不管怎么选 x x x

设起点为 f f f,那么途径的点是 f − 1 , f − 2 , f − 3... h 0 f-1,f-2,f-3...h_0 f1,f2,f3...h0

这也要求期间每个位置的 c c c都要大于 h 0 h_0 h0

其实答案就是 c − 1 c-1 c1

#include
using namespace std;int h,c;int main(){
while( cin >> h >> c ) {
if( c

转载地址:https://issue-is-vegetable.blog.csdn.net/article/details/116595438 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:ICPC亚洲区域赛(南京) M.Monster Hunter(树形dp)
下一篇:2019牛客国庆集训派对day3 J.买一送一(dfs+组合数学)

发表评论

最新留言

不错!
[***.144.177.141]2024年04月09日 15时17分37秒