3426. 糖果分享游戏

3426.糖果分享游戏

⭐️难度:简单

⭐️类型:模拟

📖题目:题目链接

⭐️思路:

以{2,4,6,8}为例,打下表:

步骤:

1、用一个v2数组存糖果数,避免分享时覆盖原来数据;

2、分享时记得减去一半,然后再加上左边小朋友的一半,也就是+ (v2[index] / 2);

3、每完成一轮分享就检查一次是否相等。

📚题解:

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<vector>  // vector不需要.h
#include<list>

using namespace std;

bool panduan(vector<int> v) {
    int size = v.size();
    int num = v[0]; // 取一个元素进行判断:是否每一个元素都相等
    for (int i = 0; i < size;i++) {
        if (v[i] != num) {
            return false;
        }
    }
    return true;
}

void share(vector<int>& v) {  // 使用c++的引用
    // 注意:是在原先拥有的糖果数上进行分享,将糖果数先复制一份到v2
    vector<int> v2 = v;

    int size = v.size();
    for (int i = 0;i < size;i++) {
        int index;
        if (i == 0) {
            index = size - 1;
        }
        else {
            index = i - 1;
        }
        v[i] = (v[i] / 2) + (v2[index] / 2);
    }
    for (int i = 0;i < size; i++) {  // 糖果数是奇数的话:再+1
        if (v[i] % 2 == 1) {
            v[i]++;
        }
    }
}

int main() {
   int n = 0;
    while (scanf("%d", &n) != EOF) {
        if (n == 0) {
            break;
        }

        vector<int> v(n);
        for (int i = 0;i < n; i++) {
            scanf("%d",&v[i]);
        }

        int res = 0;
        while(panduan(v) == false) {
            share(v);
            res++;
        }

        printf("%d %d\n", res, v[0]);
    }

    return 0;
}

⭕️注意:

相关推荐
Tisfy19 小时前
LeetCode 3643.垂直翻转子矩阵:原地修改
算法·leetcode·矩阵·模拟
Tisfy2 天前
LeetCode 3567.子矩阵的最小绝对差:暴力模拟
leetcode·矩阵·题解·模拟·暴力
Tisfy8 天前
LeetCode 1415.长度为 n 的开心字符串中字典序第 k 小的字符串:DFS构造 / 数学O(n)
数学·算法·leetcode·深度优先·字符串·dfs·模拟
zaiyang遇见8 天前
[CSP-J 2020] 优秀的拆分
贪心·模拟·csp-j·信息学奥赛·程序设计竞赛·二进制拆分
Tisfy9 天前
LeetCode 3296.移山所需的最少秒数:优先队列
算法·leetcode·题解·优先队列·模拟
进击的荆棘11 天前
优选算法——模拟
java·开发语言·算法·模拟
List<String> error_P1 个月前
蓝桥杯高频考点练习:模拟问题“球队比分类”
数据结构·python·算法·模拟·球队比分
七夜zippoe1 个月前
模拟与存根实战:unittest.mock深度使用指南
linux·服务器·数据库·python·模拟·高级摸您
Tisfy1 个月前
LeetCode 3379.转换数组:下标取模
算法·leetcode·题解·模拟·取模
Tisfy1 个月前
LeetCode 3713.最长的平衡子串 I:计数(模拟)
算法·leetcode·题解·模拟