HDOJ 1205 吃糖果(数学)

本文介绍了一种关于糖果消除游戏的算法实现,通过计算不同类型的糖果数量来判断是否能够全部消除。利用C++编程语言实现了核心算法,并给出了完整的AC代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【思路】:把吃糖的行为看成是两两消除的行为,所以如果想全部消除,取决于数量最多的那种。所以得出公式:max - (sum-max)<= 1.另外:要采用longlong型。

【AC代码】:

#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iomanip>
using namespace std;

#define MAX 1000000+10

int num[MAX];
int main()
{
    //freopen("in.txt", "r", stdin);
    int T = 0;
    cin >> T;
    while (T--)
    {
        int i = 0;
        long long int N = 0, sum = 0, mmax = 0;
        cin >> N;
        for(i = 0; i < N; i++)
        {
            scanf("%d", &num[i]);
            sum += num[i];
            if (num[i] > mmax)
                mmax = num[i];
        }
        if (mmax-1 <= sum-mmax)
            cout << "Yes" << endl;
        else
            cout << "No" << endl;
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值