HDU 1171 Number Sequence(KMP)

本文详细介绍了KMP算法的基本原理及其在字符串匹配问题中的应用,并提供了完整的C++实现代码。通过对KMP算法的理解和实践,帮助读者掌握该算法的工作流程及如何在实际问题中运用。

Number Sequence

题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=1711

解题思路:

不想说我对kmp算法懂了多少,但至少理解了。能敲出代码。给你几个大牛的博客,看看他们对kmp的理解:

http://kb.cnblogs.com/page/176818/

http://www.cnblogs.com/dolphin0520/archive/2011/08/24/2151846.html

AC代码:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

int n,m;
int a[1000005],b[10005];

void getnext(int *p,int *next){
    int j = 0,k = -1;
    next[0] = -1;
    while(j < m-1){
        if(k == -1 || p[j] == p[k]){
            j++;k++;
            next[j] = k;
        }
        else{
            k = next[k];
        }
    }
}

void kmp(int *s,int *p){
    int i = 0,j = 0;
    int next[10005];
    getnext(p,next);
    while(i < n){
        if(j == -1 || s[i] == p[j]){
            i++;
            j++;
        }
        else{
            j = next[j];
        }
        if(j == m){
            printf("%d\n",i-m+1);
            return ;
        }
    }
    printf("-1\n");
}

int main(){
    int T;
    scanf("%d",&T);
    while(T--){
        scanf("%d%d",&n,&m);
        for(int i = 0; i < n; i++)
            scanf("%d",&a[i]);
        for(int i = 0; i < m; i++)
            scanf("%d",&b[i]);
        kmp(a,b);
    }
    return 0;
}


【EI复现】基于深度强化学习的微能源网能量管理与优化策略研究(Python代码实现)内容概要:本文围绕“基于深度强化学习的微能源网能量管理与优化策略”展开研究,重点利用深度Q网络(DQN)等深度强化学习算法对微能源网中的能量调度进行建模与优化,旨在应对可再生能源出力波动、负荷变化及运行成本等问题。文中结合Python代码实现,构建了包含光伏、储能、负荷等元素的微能源网模型,通过强化学习智能体动态决策能量分配策略,实现经济性、稳定性和能效的多重优化目标,并可能与其他优化算法进行对比分析以验证有效性。研究属于电力系统与人工智能交叉领域,具有较强的工程应用背景和学术参考价值。; 适合人群:具备一定Python编程基础和机器学习基础知识,从事电力系统、能源互联网、智能优化等相关方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①学习如何将深度强化学习应用于微能源网的能量管理;②掌握DQN等算法在实际能源系统调度中的建模与实现方法;③为相关课题研究或项目开发提供代码参考和技术思路。; 阅读建议:建议读者结合提供的Python代码进行实践操作,理解环境建模、状态空间、动作空间及奖励函数的设计逻辑,同时可扩展学习其他强化学习算法在能源系统中的应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值