牛客寒假训练营五 补题
链接:https://ac.nowcoder.com/acm/contest/3006/D
来源:牛客网
牛牛在辛苦的一天的比赛之后,要去找牛妹玩,其实牛妹那天也在比赛。他为了找到牛妹,要尽快的从自己的比赛地到她的比赛地。
还记得吗,比赛地都是只在xxx轴上的,所以两个人的坐标都满足y=0y=0y=0。牛牛除了可以以111单位距离/单位时间的速度移动任意时间以外,还可以花费111单位时间进行闪现。每次闪现时,如果当前他的坐标是x=kx=kx=k,他将闪现到x=k3x=\sqrt[3]{k}x=3k
请帮他算算,最短需要多少时间,他可以找到牛妹~
输入描述:
输入数据包括多组用例,输入第一行包含一个数字T(1≤T≤5×105)T(1 \leq T \leq 5 \times 10^5)T(1≤T≤5×105),表示数据组数。
接下来TTT行,每行包括两个整数a,b(∣a∣,∣b∣≤106)a,b(|a|,|b|\leq 10^6)a,b(∣a∣,∣b∣≤106),表示牛牛所在的位置和牛妹所在的位置。
输出描述:
输出共TTT行,每行包括一个实数,表示牛牛所花费的最短时间。
如果你的答案是aaa,标准答案是bbb,当∣a−b∣≤10−6|a-b|\leq 10^{-6}∣a−b∣≤10−6时,你的答案将被判定为正确。
示例1
输出
复制3.442249570 1.000000000
1 #include <iostream> 2 #include <algorithm> 3 #include <cmath> 4 #include <cstdio> 5 using namespace std; 6 int main() 7 { 8 int t,ca,cb; 9 cin>>t; 10 while(t--) 11 { 12 cin>>ca>>cb; 13 double k,ans=0,p=1.0/3.0; 14 double a=ca,b=cb; 15 while(1) 16 { 17 if(a<0) k =-pow(-a,p); 18 else k=pow(a, p); 19 double t1=abs(k-b)+1.0; 20 double t2=abs(a-b); 21 if(t1<=t2) ans+=1.0;a=k; 22 else 23 { 24 ans+=t2; 25 break; 26 } 27 } 28 printf("%.9f\n",ans); 29 } 30 }
链接:https://ac.nowcoder.com/acm/contest/3006/E
来源:牛客网
牛牛战队的三个队员在训练之余会自己口胡了一些题当做平时的益智游戏。有一天牛可乐想出了一个小游戏给另外两名队员玩,游戏规则如下:
- 初始一共有nnn张卡牌
- 先手第一步最少要拿111张牌,最多要拿n−1n-1n−1张牌。
- 接下来每一步,双方最少要拿111张牌,最多拿等同于上一步对方拿的牌数的牌。
- 拿走最后一张牌的人将取得游戏的胜利。
你作为旁观者,看着他们玩的很开心,想参与到这场游戏中来,赌一赌谁会能赢。
输入描述:
输入数据包含一个整数nnn(2≤n≤10182 \leq n \leq 10^{18}2≤n≤1018),表示初始卡牌张数。
输出描述:
如果先手有必胜策略,输出Bob,否则输出Alice。