2023牛客寒假算法基础集训营3

A-不断减损的时间

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

小红拿到了一个数组,她每次操作可以选择一个偶数除以2,可以操作任意次(也可以不操作)。求最终数组所有元素之和的最小值。

输入描述:

第一行输入一个正整数nnn。
第二行输入nnn个整数aia_iai​,代表小红拿到的数组。
1≤n≤1051\le n\le 10^51≤n≤105
−109≤ai≤109-10^9 \leq a_i \leq 10^9−109≤ai​≤109

输出描述:

一个整数,代表最终数组所有元素的最小和。

示例1

输入

4
1 2 -3 4

输出

0

说明

数组变成[1,1,-3,1]即可。

//我们有无限次操作可以将偶数除以2或者不操作,记住只能对偶数操作,最后的目的是获得最小值,那么就可以让所有正偶数都降到最低(也就是让它变成奇数)。 

#include
using namespace std;
int main(){
     long long n,i,a[100005],s=0;
    cin>>n;
    for(i=0;i>a[i];
        if(a[i]>0&&a[i]%2==0)
        {
            while(a[i]%2!=1)
            a[i]/=2;
        }
    }
    for(i=0;i

D- 宿命之间的对决

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

小红和小紫正在玩一个游戏。现在给定一个正整数nnn,小红和小紫轮流操作,每次取nnn的一个因子xxx,使得nnn减去xxx。谁先将nnn减到0谁输。
小红先手操作,她想知道在双方足够聪明的情况下,谁会获得最终的胜利?

输入描述:

一个正整数nnn
1≤n≤10181\leq n \leq 10^{18}1≤n≤1018

输出描述:

如果小红获胜,则输出"kou"。
否则输出"yukari"

示例1

输入

2

输出

kou

说明

小红先手取,只能取1(若取2,则小红直接失败),将nnn变成1。
此时小紫只能取1,所以小红获胜。

//这道题是很简单的,我们需要注意的是减去的数是n的因数,然后每次操作之后,n是更新的,所以n的因数也有改变,而不是一直用最开始n的因数,然后其实你发现他是有规律的,偶数能赢奇数不能,可以自行举例,题目保证了两人足够聪明,也就是不会自杀,或者我们可以说只要有能使得小红赢的办法,那么一定会赢,没有的话,就输,这个时候小紫也一定会抓住机会,最后注意输出,要么直接复制,要么检查清楚,不然真的冤大头,还不断自我怀疑思路和漏掉的细节。

#include
using namespace std;
int main(){
     long long n;
    cin>>n;
 if(n%2==0)cout<<"kou";
    else cout<<"yukari";
    
    return 0;
}

F- 迎接终结的寂灭

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

宇宙的终极答案是42是怎么回事呢?宇宙的终极答案相信大家都很熟悉,但是宇宙的终极答案是42是怎么回事呢,下面就让小红带大家一起了解吧。
宇宙的终极答案是42,其实就是小红想知道,大家可能会很惊讶宇宙的终极答案怎么会是42呢?但事实就是这样,小红也感到非常惊讶。
这就是关于宇宙的终极答案是42的事情了,大家有什么想法呢,欢迎在评论区告诉小红一起讨论哦!

小红拿到了一个计算式,请你帮她计算宇宙的终极答案。

输入描述:

一个字符串,代表小红拿到的计算式。

输出描述:

一个整数,代表宇宙的终极答案。

示例1

输入

5*8+2

输出

42

示例2

输入

(3↑↑2)-sqrt(4!-2^3)*3+(3↑↑2)

输出

42

示例3

输入

the true answer of universe

输出

42

//题目没看出什么,看到第一个样例的时候以为是读取字符,然后进行加减乘除操作,看到后面,就是一个输入加一个固定输出。

#include
using namespace std;
int main(){
    string s;
    getline(cin,s);
    cout<<"42";
    return 0;
}

你可能感兴趣的:(牛客,算法)