牛客每日练习----你会玩跳一跳吗,博弈,小国的复仇

我喜欢给自己压力,必须得定一个很高的目标,逼自己朝着这个目标前进,不管会不会实现,都是一个动力。                                      ----喻言

链接:https://ac.nowcoder.com/acm/problem/15597
来源:牛客网
 

题目描述

“跳一跳”是微信上的一款小程序, 在“跳一跳”游戏中,玩家需要扮演一个“黑色”小人,在不同的跳板方块间进行跳跃。玩家需要“按住”屏幕选定跳跃力度,按住时间越长,小人会跳得越远。

我们现在需要做的是模拟一个简单版的跳一跳,小人只会在单方向上进行跳跃,并且我们只模拟单次跳跃的情况。

在一行中输入:按住屏幕的时间 T、“黑色”小人与跳板中心的距离 L、跳跃距离与时间比例系数 K以、所在跳板的半径 R1、目标跳板的半径R2,请你判断小人跳跃的情况

如果没有跳出所在跳板,则输出“Unmoved”

如果在两块跳板之间,则输出“Pressed too short”

如果到达了目标跳板上,则输出“Bingo”

如果超过了目标跳板,输出“Pressed too long”

输入描述:

在一行中输入5个大于0的实数T,L,K,R1,R2,中间以空格分隔

输出描述:

在一行中输出跳跃的结果

示例1

输入

复制

0.5 100 150 20 20

输出

复制

Pressed too short
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include//INT_MAX
#define PP pair
#define inf 0x3f3f3f3f
#define llinf 0x3f3f3f3f3f3f3f3fll
#define dinf 1000000000000.0
typedef long long ll;
using namespace std;
int const N=100000+10;
int const mod=1e9+7;
const int maxn=10000000+10;
float T,L,K,R1,R2;
int main()
{
    scanf("%f%f%f%f%f",&T,&L,&K,&R1,&R2);
    if(T*K=R1&&T*K<=L-R2)
        printf("Pressed too short");
    if(T*K>=L-R2&&T*K<=L+R2)
        printf("Bingo");
    if(T*K>L+R2)
        printf("Pressed too long");
    return 0;
}

链接:https://ac.nowcoder.com/acm/problem/15670
来源:牛客网
 

题目描述

XHRlyb在和Cwbc玩游戏。
在一个多重集合中有在[l,r]中的全部整数各一个,即l,l+1,l+2,......,r。
每次XHRlyb和Cwbc可以选择一个大于0的数字p,把p从多重集合中删去,然后向集合中加入k个⌊pk⌋\lfloor \frac{p}{k} \rfloor⌊kp​⌋,最后不能操作的人算输。

如果博弈双方都是绝顶聪明的,并且XHRlyb先手,请你来帮XHRlyb预测这一局游戏谁会获胜。

如果博弈双方谁也无法取胜,那么判定为平局。

聪明的你在仔细阅读题目后,一定可以顺利的解决这个问题!

输入描述:

输入数据有多行,每行有三个正整数,l,r,k。

输出描述:

输出数据应有多行,如果这一局XHRlyb获胜,那么请输出XHRlyb;如果Cwbc获胜,请输出Cwbc;如果两人平局,请输出Draw。

示例1

输入

复制

1 3 2

输出

复制

XHRlyb

示例2

输入

复制

1 4 2

输出

复制

Cwbc

备注:

1 ≤ l ≤ r ≤ 105。
1 ≤ k ≤ 100。
1 ≤ T ≤ 1000。
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include//INT_MAX
#define PP pair
#define inf 0x3f3f3f3f
#define llinf 0x3f3f3f3f3f3f3f3fll
#define dinf 1000000000000.0
typedef long long ll;
using namespace std;
int const N=100000+10;
int const mod=1e9+7;
const int maxn=10000000+10;
int l,r,k;
ll sum(ll n){

    ll q=1,jg=0,p=1;
    while(q*k-1

链接:https://ac.nowcoder.com/acm/problem/15689
来源:牛客网
 

题目描述

众所周知,汀老师是XDUACM实验室最优秀的人,无论是学习还是打游戏。今天他突然想到一个好玩的游戏。规则是这样的,在游戏中他要得到n个小国,初始的时候小国和小杰各有1个。经过了很久的修炼,汀老师学会了两种魔法,他每次可以动用自己的智慧来使用魔法。

第一个魔法:(小杰变小国)可以将自己的智慧复制和当前小杰一样数量的小国出来;

第二个魔法:(小国大爆发)可以将当前的小杰变成和小国的数量一样,然后小国的数量加倍!

因为汀老师的智力是无限多的,他不关心花掉的智力大小。但是好学的汀老师想尽快得到n个小国,使得能有更多的时间去读paper和打比赛。他想问问你,最少需要使用多少次魔法可以得到n个小国。

得到了n个小国后,汀老师去学习,但是小国们基因突变在电脑里越来越多!他们来组织汀老师学习,现在告诉汀老师我要得到更多的同伴!

输入描述:

多组数据,第一行一个正整数T(T<=100000)表示数据组数。
接下来T行,每行一个正整数n(n<=10^6)。

输出描述:

对于每组数据输出一个整数,表示得到n个小国汀老师最少需要使用多少次膜法。

示例1

输入

复制

2
1
3

输出

复制

0
2
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include//INT_MAX
#define PP pair
#define inf 0x3f3f3f3f
#define llinf 0x3f3f3f3f3f3f3f3fll
#define dinf 1000000000000.0
typedef long long ll;
using namespace std;
int const N=100000+10;
int const mod=1e9+7;
const int maxn=10000000+10;
int a[1000005];
int main()
{
    int t,n;
    for(int i=2;i<=1e6;i++)
        a[i]=inf;
    a[1]=0;
    for(int i=1;i<=1e6;i++)
    {
        for(int j=i*2;j<=1e6;j+=i)
        	a[j]=min(a[j],a[i]+(j-i)/i);
    }
    scanf("%d",&t);
    while(t--)
    { 
        scanf("%d",&n);
        printf("%d\n",a[n]);
    }
    return 0;
}

 

你可能感兴趣的:(牛客网)