「2019冬令营提高组」送分题

博客围绕序列重排问题展开,将序列中 'M' 记为 1,'F' 记为 -1,通过分析后缀和判断序列合法性,指出若后缀和大于 1 序列不合法。还探讨了重排方法,把男的移到队首,通过坐标系表示后缀和,找到最高位置下移到 1 的代价即为答案。

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

传送门

原题传送门...

 考虑从后往前推

对于一个序列,记 $M$ 为 $1$, $F$ 为 $-1$

考虑这个序列的后缀和:

F   F   F   M   M   M   M   M   F   F

0   1   2    3    2    1    0    -1  -2  -1

可以发现如果某个时刻后缀和大于 $1$ 了,那么序列就不合法

反之序列一定合法,证明

首先偶数位的后缀和一定为偶数,奇数位的后缀一定为奇数

从后往前,考虑偶数位,如果男的比女的多,那么此时后缀和大于等于 $2$

设此时从后往前数有 $2k$ 个人,因为男的大于 $k$,所以男的排完需要的时间一定不够

考虑奇数位,如果此时后缀和大于 $2$ ,同理可以证明不合法,如果后缀和小于 $1$ 那么显然合法

如果后缀和为 $1$ 只要考虑更前一位(为偶数位)的后缀和

考虑怎么重排,显然男的往前移,因为移动多少都不会影响最大不满值,所以直接移到队首,以后就不用考虑了

考虑在坐标系上表示后缀和,如果纵坐标超过 $1$ 了就要移动

考虑移动一个男的到队首后对数轴的影响,发现前面整个图像集体下降了一位

那么只要找到坐标系上最高的位置,把它下移到 $1$ 的代价就是答案了

可能有人想更后面的凸起不会下降呀,但是我们可以答案的把一部分操作看成更后面的位置的操作,最终答案也不会变的

求坐标系最大值实现并不困难

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<vector>
using namespace std;
typedef long long ll;
inline ll read()
{
    ll x=0,f=1; char ch=getchar();
    while(ch<'0'||ch>'9') { if(ch=='-') f=-1; ch=getchar(); }
    while(ch>='0'&&ch<='9') { x=(x<<1)+(x<<3)+(ch^48); ch=getchar(); }
    return x*f;
}
const int N=2e5+7;
ll n,m,p[N],ans,tot;
char s[N];
ll cnt[N],mx[N];
int main()
{
    freopen("queue.in","r",stdin);
    freopen("queue.out","w",stdout);
    n=read(),m=read();
    for(int i=1;i<=m;i++)
    {
        scanf("%s",s+1); p[i]=read();
        for(int j=strlen(s+1);j;j--)
        {
            cnt[i]+=(s[j]=='M' ? 1 : -1);
            mx[i]=max(mx[i],cnt[i]);
        }
        tot+=cnt[i]*p[i];
    }
    if(tot>0) { printf("-1"); return 0; }
    tot=0;
    for(int i=m;i;i--)
    {
        ans=max(ans,tot+(p[i]-1)*max(0ll,cnt[i])+mx[i]);
        tot+=cnt[i]*p[i];
    }
    printf("%lld",ans ? ans-1 : 0);
    return 0;
}

 

转载于:https://www.cnblogs.com/LLTYYC/p/10561667.html

内容概要:本文介绍了基于SMA-BP黏菌优化算法优化反向传播神经网络(BP)进行多变量回归预测的项目实例。项目旨在通过SMA优化BP神经网络的权重和阈值,解决BP神经网络易陷入局部优、收敛速度慢及参数调优困难等问。SMA算法模拟黏菌寻找食物的行为,具备优秀的全局搜索能力,能有效提高模型的预测准确性和训练效率。项目涵盖了数据预处理、模型设计、算法实现、性能验证等环节,适用于多变量非线性数据的建模和预测。; 适合人群:具备一定机器学习基础,特别是对神经网络和优化算法有一定了解的研发人员、数据科学家和研究人员。; 使用场景及目标:① 提升多变量回归模型的预测准确性,特别是在工业过程控制、金融风险管理等领域;② 加速神经网络训练过程,减少迭代次数和训练时间;③ 提高模型的稳定性和泛化能力,确保模型在不同数据集上均能保持良好表现;④ 推动智能优化算法与深度学习的融合创新,促进多领域复杂数据析能力的提升。; 其他说明:项目采用Python实现,包含详细的代码示例和注释,便于理解和二次开发。模型架构由数据预处理模块、基于SMA优化的BP神经网络训练模块以及模型预测与评估模块成,各模块接口清晰,便于扩展和维护。此外,项目还提供了多种评价指标和可视化析方法,确保实验结果科学可信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值