HNUST-OJ-2287-寻找厄咒图腾

这是一道关于字符串处理的问题,题目描述晟晟在黎明杀机游戏中寻找能削弱杀手力量的图腾。通过分析录像中的字符串,需要找出并组合成尽可能多的单词'hex'。提供的代码示例展示了如何遍历字符串,查找并计数'hex'图腾的方法。

题目描述:

不知道怎么的,晟晟突然出现在黎明杀机的世界中,他和一个凶残的杀手被关在封闭的房间内,目前他已经躲了起来处于安全状态,他现在需要冷静下来思考逃跑的对策。
他发现杀手的特殊力量部分来自于藏在封闭房间内的图腾,这些图腾带有诅咒,只要把它们破坏掉,就能削弱杀手的力量,增加自己的生存几率。
可是图腾在哪呢?他想起自己在逃离杀手的过程中胸前的相机还在录像,他打开录像,想看看自己能否找到图腾。
从某种角度上来说,录像的本质就是很多张照片的组合,为了方便你解决问题,我们只看一张照片,并且把一张照片中的所有物体从左到右用只有小写字母组成的字符串来描述。
现在我们会给你一个整数 n 表示这张照片所转化的字符串的长度,然后是用以描述照片的字符串,您需要回答照片中最多可以找到多少个图腾。 
在字符串中,我们使用"hex"表示图腾。但是,照片里面可能会拍到各种杂物,图腾会隐藏在各种杂物之中,因此照片中会出现任何字母,也可能会出现图腾的某些部分,所以我们要想找出图腾,就得排除其它杂物的干扰,将图腾的部分组合拼凑出图腾。"h"、"e"、"x"、"he"、"ex"都可以认为是"hex"的某个部分,你可以随意删除字符串中的字母,然后,每当在删除后的字符串中完整地组合出一个"hex"这个词,我们就认为找到一个图腾。
也就是说,你需要排除杂物的干扰,然后找到尽可能多的"hex"图腾。
例如:长度为5的字符串"heexh",删除两个字符后变成"hex",有一个图腾。长度为9的字符串"ehehexhex",删去前三个字符后变成"hexhex",有两个图腾。

输入:

在第一行,有一个整数 n(1≤n≤2*105), 表示照片转化的字符串的长度。
在第二行,有一个长度为n并且只包含小写字母的字符串。

输出:

 只有一个整数, 表示最后可以从照片中找到的最多的图腾的数量。

样例输入:

22
hehexhhxexexabaabababa

样例输出:

解题思路:

题意就是希望我们尽可能多的能组成hex的字符串个数。于是思路便如下面代码一样清晰了。

代码实现:

 

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n;
    scanf("%d",&n);getchar();
    char a[n+1];
    int i,flag=0,count=0;
    gets(a);
    for(i=0; i<n; i++)
    {
        if(a[i]=='h'&&flag==0)flag=1;
        if(a[i]=='e'&&flag==1)flag=2;
        if(a[i]=='x'&&flag==2)
        {
            count++;
            flag=0;
        }


    }printf("%d",count);

}

MATLAB代码实现了一个基于多种智能优化算法优化RBF神经网络的回归预测模型,其核心是通过智能优化算法自动寻找最优的RBF扩展参数(spread),以提升预测精度。 1.主要功能 多算法优化RBF网络:使用多种智能优化算法优化RBF神经网络的核心参数spread。 回归预测:对输入特征进行回归预测,适用于连续值输出问题。 性能对比:对比不同优化算法在训练集和测试集上的预测性能,绘制适应度曲线、预测对比图、误差指标柱状图等。 2.算法步骤 数据准备:导入数据,随机打乱,划分训练集和测试集(默认7:3)。 数据归一化:使用mapminmax将输入和输出归一化到[0,1]区间。 标准RBF建模:使用固定spread=100建立基准RBF模型。 智能优化循环: 调用优化算法(从指定文件夹中读取算法文件)优化spread参数。 使用优化后的spread重新训练RBF网络。 评估预测结果,保存性能指标。 结果可视化: 绘制适应度曲线、训练集/测试集预测对比图。 绘制误差指标(MAE、RMSE、MAPE、MBE)柱状图。 十种智能优化算法分别是: GWO:灰狼算法 HBA:蜜獾算法 IAO:改进天鹰优化算法,改进①:Tent混沌映射种群初始化,改进②:自适应权重 MFO:飞蛾扑火算法 MPA:海洋捕食者算法 NGO:北方苍鹰算法 OOA:鱼鹰优化算法 RTH:红尾鹰算法 WOA:鲸鱼算法 ZOA:斑马算法
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值