zoukankan      html  css  js  c++  java
  • cf914F. Substrings in a String(bitset 字符串匹配)

    题意

    题目链接

    Sol

    Orz jry

    和上一个题一个思路吧,直接bitset乱搞,不同的是这次有了修改操作

    因为每次修改只会改两个位置,直接暴力改就好了

    #include<bits/stdc++.h>
    using namespace std;
    const int MAXN = 1e5 + 10;
    char s[MAXN], tmp[MAXN];
    int N, q;
    bitset<MAXN> ans, B[27];
    main() {
        scanf("%s %d", s + 1, &q);
        N = strlen(s + 1);
        for(int i = 1; i <= N; i++) B[s[i] - 'a'].set(i);
        while(q--) {
            int opt, pos, l, r; 
            scanf("%d", &opt);
            if(opt == 1) {
                scanf("%d %s", &pos, tmp + 1);
                B[s[pos] - 'a'].reset(pos); s[pos] = tmp[1]; B[s[pos] - 'a'].set(pos);
            } else {
                scanf("%d %d %s", &l, &r, tmp + 1);
                int L = strlen(tmp + 1);
                ans.set(); r = r - L + 1;
                for(int i = 1; i <= L; i++) ans &= B[tmp[i] - 'a'] >> (i - 1);
                printf("%d
    ", max(0, (int)((ans >> (l)).count() - (ans >> (r + 1)).count())));
            }
        }
    }
    /*
    */
    
  • 相关阅读:
    取三级分销上下级用户id
    Map集合
    Log4j
    异常
    逻辑运算符
    变量
    变量名命名规则
    命名法
    Nessus
    Nmap扫描工具
  • 原文地址:https://www.cnblogs.com/zwfymqz/p/9765028.html
Copyright © 2011-2022 走看看