首页 > 其他分享 >【题解】Solution Set - NOIP2024集训Day58 字符串

【题解】Solution Set - NOIP2024集训Day58 字符串

时间:2024-10-22 08:52:53浏览次数:1  
标签:Set log 题解 Solution Day58 NOIP2024

【题解】Solution Set - NOIP2024集训Day58 字符串

https://www.becoder.com.cn/contest/5658


「CF1466G」Song of the Sirens

考虑对于 \(s_i\),算钦定必须覆盖到 \(t_i\) 的匹配个数 \(f_i\)。

注意到 \(s\) 每次长度都会 \(\times ~2\) 左右,其长度在 \(O(\log |w|)\) 的时候就会超过 \(|w|\),而在此之后 \(f_i\) 可能匹配到的字符串只会有 \(t_i\) 这一位不同。

对于后面这一部分,我们直接枚举可能的 \(t_i\),然后在 \(w\) 的对应位置上暴力 check,这样均摊下来是 \(O(w)\) 的。

而前面这一部分,每一次 \(O(w)\) 维护 hash,同样 \(O(w)\) 算 \(f_i\)。一共 \(O(\log |w|)\) 次。

所以总时间复杂度为 \(O(w+w\log w)\)。

22min

标签:Set,log,题解,Solution,Day58,NOIP2024
From: https://www.cnblogs.com/CloudWings/p/18491738

相关文章

  • (multi)map和set--C++
    文章目录一、序列式容器和关联式容器二、set系列的使用1、set和multiset参考文档2、set类的介绍3、set的构造和迭代器4、set的增删查5、insert和迭代器遍历使用样例:6、find和erase使用样例:7、multiset和set的差异三、map系列的使用1、map和multimap参考文档2、map类的介......
  • noi.ac775题解
    Gameb文件OI:gameb时限:1000ms空间:512MiBAlice和Bob正在玩一个游戏。具体来说,这个游戏是这样的,给定一个数列,从Alice开始,两个人轮流操作,每次操作可以从数列的头部或者尾部删去一个数字,当这个数列满足一定条件的时候,最后一次操作的人获胜。如果一开始就满足条......
  • [POI2012] Cloakroom - Solution
    POI2012Cloakroom题目描述(搬自洛谷)有\(n\)件物品,每件物品有三个属性\(a_i,b_i,c_i\(a_i<b_i)\)。再给出\(q\)个询问,每个询问由非负整数\(m,k,s\)组成,问是否能够选出某些物品使得:对于每个选的物品\(i\),满足\(a_i\lem\)且\(b_i>m+s\)。所有选出物品的\(c_i......
  • ZZJC新生训练赛第七场题解
    难度分类(同一难度下按字典序上升)入门:C简单:G,D中等:E,H,F,A困难:BC-解题思路数一下每个字母的数量看是不是偶数就可以得到答案。C-代码实现#include<bits/stdc++.h>intmain(){std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout......
  • NOI2024 D1T1 - 集合 题解
    观察我们称\(x\)在一段序列中的“位置集合”为\(x\)出现的下标的集合。注意到,两段序列能够匹配,当且仅当两段序列的\(1\simm\)中的数的位置集合构成的多重集相等。快速比较集合,考虑哈希。哈希先实现一个从整数到整数的哈希\(f(x)\)。使用这个哈希的目的是为了提高随机......
  • 题解 P11220 / MX241020D【【MX-S4-T4】「yyOI R2」youyou 的三进制数】
    好长的标题题目描述现在有\(0\simn\)共\(n+1\)个数。定义\((x)_{3}\)表示十进制数\(x\)的三进制形式。如果没有特别强调,那么这些数均为十进制形式。youyou想构造一个序列长度为\(p\)(\(p\ge1\))的非负整数序列\(a\)。使之满足:\(a_i\in[0,n]\)。不存在\(i......
  • P9890 [ICPC2018 Qingdao R] Tournament 题解
    P9890[ICPC2018QingdaoR]Tournament题目传送门更好的阅读体验一道找规律的思维题。前置知识\(lowbit\)\(lowbit\)是指获取一个二进制数中最右边的\(1\)所对应的数值。具体地,\(lowbit\)可以通过对一个数取反然后加\(1\),再与原数进行按位与的方式来实现。intlow......
  • ZZJC新生训练赛第六场题解
    先给出比赛链接:下面说一下难度分层:(同一难度下按字典序排序)Easy(简单):BHMedium(中等):DEHard(困难):AGAnti-AK(防AK):CFA扣分扣分扣分!扣分!二维前缀差分板子题题目要求对二维区间加某个数或者查询二维区间的和与一维前缀和类似地,我们定义$sa[i][j]$为区间(......
  • [ARC185A] mod M Game 2 Solution
    ARC185A-modMGame2简要题意Alice和Bob玩卡牌游戏。每个人都有一副\(N\)张卡牌,分别标上数字\(1\simN\)。现从Alice开始,两人轮流出牌放入牌堆,每人每局恰好出一张牌,出过的牌不能再出;如果在某一时刻,牌堆里所有牌的数字总和是\(M(N<M)\)的倍数,则刚刚出牌的玩家输,......
  • 「题解」Codeforces Round 980 (Div. 2)
    before\(A\simD\)的题解A.ProfitableInterestRateProblemA.ProfitableInterestRateSol&Code数学题,有\(a-x\geqb-2x\),得\(x=b-a\)。特判\(a\geqb\)以及\(a<x\)的情况即可。#include<bits/stdc++.h>#defineM10001#defineN......