0


【算法集训暑期刷题营】7.24日题---思维

《算法集训传送门》

👉引言

在这里插入图片描述
铭记于心🎉✨🎉我唯一知道的,便是我一无所知🎉✨🎉


💖
❄️我们的算法之路❄️💖

众所周知,作为一名合格的程序员,算法 能力 是不可获缺的,并且在算法学习的过程中我们总是能感受到算法的✨魅力✨。
              ☀️🌟短短几行代码,凝聚无数前人智慧;一个普通循环,即是解题之眼🌟☀️
   💝二分,💝贪心,💝并查集,💝二叉树,💝图论,💝深度优先搜索(dfs),💝宽度优先搜索(bfs),💝数论,💝动态规划等等, 路漫漫其修远兮,吾将上下而求索! 希望在此集训中与大家共同进步,有所收获!!!🎉🎉🎉

在这里插入图片描述


今日主题:思维


👉⭐️第一题💎

✨题目

      1.Nim游戏
在这里插入图片描述

✨思路:

只需简单的数学推理,显而易见的是,如果石头堆中只有一块、两块、或是三块石头,那么在你的回合,你就可以把全部石子拿走,从而在游戏中取胜;如果堆中恰好有四块石头,你就会失败。因为在这种情况下不管你取走多少石头,总会为你的对手留下几块,他可以将剩余的石头全部取完,从而他可以在游戏中打败你。因此,要想获胜,在你的回合中,必须避免石头堆中的石子数为 44 的情况

✨代码:

classSolution{public:boolcanWinNim(int n){return n %4!=0;}};

👉⭐️第二题💎

✨题目

       2.灯泡开关

在这里插入图片描述在这里插入图片描述

✨代码:

classSolution{public:intbulbSwitch(int n){returnsqrt(n +0.5);}};

👉⭐️第三题💎

✨题目

       3.所有蚂蚁掉下来的最后一刻

在这里插入图片描述

✨代码:

classSolution{public:intgetLastMoment(int n, vector<int>& left, vector<int>& right){int lastMoment =0;for(int ant : left){
            lastMoment =max(lastMoment, ant);}for(int ant : right){
            lastMoment =max(lastMoment, n - ant);}return lastMoment;}};

👉⭐️第四题💎

✨题目

       4. Roof Construction
在这里插入图片描述
在这里插入图片描述

✨代码:

#include<bits/stdc++.h>usingnamespace std;intmain(){int t;
    cin >> t;while(t--){int n;
        cin >> n;int k =0;while((1<<(k +1))<= n -1)++k;for(int i =(1<< k)-1; i >=0; i--){
            cout << i <<' ';}for(int i =(1<< k); i < n; i++){
            cout << i <<' ';}
        cout <<'\n';}}

🌹写在最后💖
相信大家对今天的集训内容的理解与以往已经有很大不同了吧,或许也感受到了算法的魅力,当然这是一定的,路漫漫其修远兮,吾将上下而求索!伙伴们,明天见!🌹🌹🌹在这里插入图片描述

标签: 算法 深度优先

本文转载自: https://blog.csdn.net/runofsun/article/details/125956080
版权归原作者 梦想new的出来 所有, 如有侵权,请联系我们删除。

“【算法集训暑期刷题营】7.24日题---思维”的评论:

还没有评论