[LuoguP1360][USACP07MAR]黄金阵容均衡

每天会增加一个数\(A\),将\(A\)二进制分解为\(a[i]\),对于每一个\(i\)都增加\(a[i]\),如果一段时间之内所有的位数上的数都增加了同一个数,那么成这个天数区间为均衡的。现在要求最长的均衡区间。

这道题很显然可以使用前缀和。我们统计每一天的前缀和为一个\(map\)数组\(A\)。如果区间\([L, R]\)为均衡区间,那么\(A[R] - A[L - 1]\)就一定满足每一个二进制分解的位数都相等。那么我们不妨设一个起始点数组,一个结束点数组。也就是\(L[i]\)\(R[i]\),那么肯定有\(R[i] - L[i] = 0\)。也就是\(R[1] - L[1] = R[2] - L[1] =..= R[N] - L[N]\) 。那么我们进而可以知道\(R[i] - R[j] = L[i] - L[j]\)

进而我们看到只要每一次计算前缀和后减去第一位的值相等,那么就是一个均衡区间。于是我就\(yy\)出一种类似于哈希的做法。首先定义每天的状态以及每一种状态对应那一天。然后每次读到一个数,判断现在的状态是否在之前出现过,如果出现过,那么就可以\(Ans = max(Ans, i - F[A])\),其中\(i - F[A]\)就是当前天数减去当前状态\(A\)对应的之前的天数,然后取个\(max\)就可以了。

可以使用\(map\)记录状态。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <map>
#include <algorithm>
using namespace std ;
typedef long long LL ;
const int MAXN = 10010 ;
const int MAXM = 10010 ;
const int Inf = 0x7fffffff ;
LL N, M, Ans ;

map <vector <int>, int> F ;

inline LL Read() {
    LL X = 0, F = 1 ; char ch = getchar() ;
    while (ch > '9' || ch < '0') F = (ch == '-' ? - 1 : 1), ch = getchar() ;
    while (ch >= '0' && ch <= '9') X=(X<<1)+(X<<3)+(ch^48), ch = getchar() ;
    return X * F ;
}

int main() {
    freopen("in.in", "r", stdin) ;
    N = Read(), M = Read() ; 
    vector <int> A(M);
    for (int i = 1 ; i <= N ; i ++) {
        LL X = Read() ;
        for (int j = 0 ; j <  M ; j ++)
            A[j] += (X & (1 << j)) ? 1 : 0 ;
        if (X & 1) for (int j = 0 ; j <  M ; j ++) A[j] -- ;
        if (F.count(A)) Ans = max(Ans, LL(i) - F[A]) ;
        else F[A] = i ;
    }   printf("%lld", Ans) ; return 0 ;
}

转载于:https://www.cnblogs.com/Yeasio-Nein/p/P1360.html

标题基于SpringBoot的马术俱乐部管理系统设计与实现AI更换标题第1章引言介绍马术俱乐部管理系统的研究背景、意义、国内外研究现状、论文方法及创新点。1.1研究背景与意义阐述马术俱乐部管理系统对提升俱乐部管理效率的重要性。1.2国内外研究现状分析国内外马术俱乐部管理系统的发展现状及存在的问题。1.3研究方法以及创新点概述本文采用的研究方法,包括SpringBoot框架的应用,以及系统的创新点。第2章相关理论总结和评述与马术俱乐部管理系统相关的现有理论。2.1SpringBoot框架理论介绍SpringBoot框架的基本原理、特点及其在Web开发中的应用。2.2数据库设计理论阐述数据库设计的基本原则、方法以及在管理系统中的应用。2.3马术俱乐部管理理论概述马术俱乐部管理的基本理论,包括会员管理、课程安排等。第3章系统设计详细描述马术俱乐部管理系统的设计方案,包括架构设计、功能模块设计等。3.1系统架构设计给出系统的整体架构,包括前端、后端和数据库的交互方式。3.2功能模块设计详细介绍系统的各个功能模块,如会员管理、课程管理、预约管理等。3.3数据库设计阐述数据库的设计方案,包括表结构、字段设计以及数据关系。第4章系统实现介绍马术俱乐部管理系统的实现过程,包括开发环境、编码实现等。4.1开发环境搭建介绍系统开发所需的环境,包括操作系统、开发工具等。4.2编码实现详细介绍系统各个功能模块的编码实现过程。4.3系统测试与调试阐述系统的测试方法、测试用例以及调试过程。第5章系统应用与分析呈现马术俱乐部管理系统的应用效果,并进行性能分析。5.1系统应用情况介绍系统在马术俱乐部中的实际应用情况。5.2系统性能分析从响应时间、并发处理能力等方面对系统性能进行分析。5.3用户反馈与改进收集用户反馈,提出系统改进建议。第6章结论与展望总结马术俱乐部管理系统的设计与实现成果,并展望未来的研究
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值