Straight Master Gym-101775J (差分)

7 篇文章 0 订阅

题目来源 Straight Master

题意

有n种扑克牌,每种扑克牌有ai张,每次可以打出3到5张连续的牌作为顺子,问这副牌能不能用顺子全打出来

思路

换一个思路,给定一个长度为0的序列,每次可以选择长度为3,4,5的区间并将这个区间内的数全部加一,最终可以得到一个新的序列,问这个序列的每个数分别是多少,这个序列就是给定的n种扑克牌。

对于这个问题,可以用差分的思想,对于区间[L, R],可以开一个新的数组b,这个区间加一后可以认为是b[L]+=1, b[R+1]-=1, b的前缀和即为对应的数字。

原来那个问题就可以转化为给你一个序列,问这个序列可不可以由上面的操作得到。也可以构建一个差分数组b,其中b[i] = a[i]-a[i-1]。如果这个b数组对于每个相邻距离大于等于3的b[i] 和 b[j] (j>=i+3),如果每一对的和加起来等于0,则给定的数列是可以得到的,否则就无法得到。

代码

#include <bits/stdc++.h>
using namespace std;
int n, a[200005], b[200005];
int main()
{
    int t;
    scanf("%d", &t);
    for (int cas = 1; cas <= t; ++cas)
    {
        memset(a, 0, sizeof(a));
        memset(b, 0, sizeof(b));

        scanf("%d", &n);
        for (int i = 0; i < n; ++i) scanf("%d", a + i);

        b[0] = a[0];
        for (int i = 1; i < n; ++i) b[i] = a[i] - a[i - 1];
        b[n] = -a[n - 1];

        bool ok = true;
        if (b[0] < 0 || b[1] < 0 || b[2] < 0)   ok = false;
        else
        {
            long long sum = 0;
            for (int i = 0; i <= n; ++i)
            {
                if (b[i] > 0)   sum += b[i];
                int p = i + 3;
                if (p > n)  break;
                if (b[p] < 0)
                {
                    sum += b[p];
                    b[p] = 0;
                }
                if (sum < 0)    break;
            }
            if (sum != 0)   ok = false;
        }
        printf("Case #%d: %s\n", cas, ok ? "Yes" : "No");
    }
    return 0;
}

这个题真的是。。。输出格式弄错了wa了好几发,然后判断前缀和满不满足条件的时候写到了花括号里。。。智障。。。

IoT是物联网(Internet of Things)的缩写,是指通过物理设备和传感器等技术将物理世界与互联网连接起来的概念。Sensor是传感器的意思,是一种能够感知和测量周围环境参数的装置。Gym master是指健身房的管理系统。那么,"IoT-Sensor-Gym-Master"指的是结合物联网、传感器技术和健身房管理系统的项目或产品。 在这个项目中,通过在健身房内部部署各种类型的传感器设备,可以实时感知和监控健身房的各种环境参数以及用户的行为。例如,可以使用体感传感器来监测用户的运动状态,心率传感器来监测用户心率变化,温湿度传感器来监测环境的温度和湿度等等。这些传感器会把收集到的数据通过物联网技术传输到云端服务器进行处理和分析。 在云端服务器上,会有一个健身房管理系统,通过对接收到的传感器数据进行分析和处理,可以提供各种健身相关的功能和服务。例如,可以根据用户的运动状态自动调整健身器材的强度,提供个性化的健身方案;还可以通过用户心率数据实时预警和监控用户的身体状况,保证用户的健康安全;同时,还可以通过温湿度传感器来实时监测健身房的环境,保证用户的舒适度。 总之,"IoT-Sensor-Gym-Master"项目结合了物联网、传感器技术和健身房管理系统的优势,将智能化和个性化服务引入健身领域,为用户提供更好的健身体验和管理服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值