zoukankan      html  css  js  c++  java
  • (暴力碾标算)NOIP模拟赛 *仪式

    题意:

    一个模式串,一个文本串,现定义最大失配值为k

    求文本中最大失配值<=k的长度为len(模式串)的字串个数

    失配值=当前字串中与模式串不同的字符个数

    思路:

    暴力,加一个跳出剪枝,居然过了??

    代码:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #define rii register int i
    #define rij register int j
    using namespace std;
    char x[1000005],y[1000005];
    int next[1000005],cd1,cd2,sl,k,cnt;
    int main()
    {
        freopen("mo.in","r",stdin);
        freopen("mo.out","w",stdout);
        scanf("%s%s",x+1,y+1);
        scanf("%d",&k);
        cd1=strlen(x+1);
        cd2=strlen(y+1);
        int zq=cd2-k;
        for(rii=1;i<=cd1-cd2+1;i++)
        {
            int r=0,w=0;
            for(rij=1;j<=cd2;j++)
            {
                if(x[i+j-1]==y[j])
                {
                    r++;
                }
                else
                {
                    w++;
                }
                if(w>k)
                {
                    break;
                }
                if(r>zq)
                {
                    break;
                }
            }
            if(w<=k)
            {
                cnt++;
            }
        }
        printf("%d",cnt);
        return 0;
    }
  • 相关阅读:
    ELK 一些截图
    AD域
    NPOI
    搭建harbor
    【【【【日常问题记录】】】】
    golang yaml配置文件解析
    golang操作mysql使用总结
    【转】mysql优化步骤
    【转】Mysql事务,并发问题,锁机制
    golang curl
  • 原文地址:https://www.cnblogs.com/ztz11/p/9630171.html
Copyright © 2011-2022 走看看