首页 > 其他分享 >ZR24NOIP1B. 数数

ZR24NOIP1B. 数数

时间:2024-09-15 16:01:48浏览次数:10  
标签:数数 ZR24NOIP1B AC 枚举 自动机 回文

ZR24NOIP1B. 数数

给你一个长度为 \(n\le 1600\) 的二进制数,其中某些位未知,是 ?。问 ? 的所有取值得到的 \(x\),\([0,x-1]\) 中不含长度为 \(k\le 20\) 的回文串的数字(含前导 \(0\))的个数的和。

首先显然是数位 DP。

考虑从高位枚举到低位,假设没有 ?,状态记位数 \((1600)\) 和是否顶到上界 \((0/1)\)。枚举第 \(i\) 位填什么数字,需要判断填上之后会不会和前面 \(k-1\) 位形成一个回文串,因此我们还要记录前 \(k-1\) 位是什么 \((2^{19})\)。有问号的话转移的时候再枚举一下 ? 填什么就好了。然后判断回文串,但是显然这样过不了。我们直接预处理所有可能的回文串 \((2^{10})\),然后把他们丢到 AC 自动机里,状态改记 AC 自动机节点编号,转移的时候跳一下指针。容易发现因为回文串左右两边是一样的,所以回文串个数只有 \(2^{10}\)。

复杂度:AC 自动机预处理时间和空间都是 \(2^{\frac{k}{2}}k\),DP 转移状态是 \(n2^{\frac{k}{2}}k\) 的,可以通过。

标签:数数,ZR24NOIP1B,AC,枚举,自动机,回文
From: https://www.cnblogs.com/liyixin0514/p/18415308

相关文章

  • 2024-09-14:用go语言,给定一个正整数数组 nums,定义一个加密函数 encrypt(x),其将一个整数
    2024-09-14:用go语言,给定一个正整数数组nums,定义一个加密函数encrypt(x),其将一个整数x的每一位数字都替换为x中的最大数字,然后返回加密后的数字。例如,encrypt(523)会返回555,encrypt(213)会返回333。现在需要计算数组中所有元素加密后的和,然后返回这个和。输入:nums=[10,2......
  • OpenAI使用AI编程给出了数数问题的解决方案 —— 如何解决ChatGPT不会数数的问题
    总所周知的一个问题,那就是ChatGPT不会数数,不过今天突然发现OpenAI给出了一个神奇的解决方法,那就是AI编程。问题案例如下:Thetextprovidedwillbeanalyzedtocalculatethewordcount.text="""Therehasbeenrapidlygrowinginterestinmeta-learningasamet......
  • 2024-09-11:用go语言,给定一个从0开始的整数数组nums和一个正奇数整数k, 要求在nums数组
    2024-09-11:用go语言,给定一个从0开始的整数数组nums和一个正奇数整数k,要求在nums数组中选择k个不重叠的子数组,使得这些子数组的能量值之和最大。子数组的能量值是通过一定规则计算得到的,具体规则是对于某个子数组,将其每个元素乘以一个特定系数,并将这些结果相加,系数随着元素在子数组......
  • 几道数数
    abc240g只考虑\(0\leqX,Y,Z\)的情况,显然小于0时的路径可以与大于0的一一对应。考虑我们三个方向的增量分别需要\(X,Y,Z\),剩下的步数显然是通过走一步该方向又走回来这样子消耗。记\(m=(N-X-Y-Z)/2\)。如果\(N-X-Y-Z\)是奇数或者\(N<X+Y......
  • Python/MySQL无法正确持久化整数数据
    如果在Python中使用MySQL时无法正确持久化整数数据,可能有以下几个原因:数据类型不匹配:确保在MySQL表中定义的列的数据类型与你在Python中要插入或更新的整数数据类型相匹配。例如,如果列的数据类型是INT,则在Python中应该使用整数类型(如int)来表示数据。连接参数问题:检查你......
  • 中国各地级市数字经济指数数据(2000-2022年)
    地级市数字经济指数是衡量一个地区数字经济发展水平的综合指标。它以互联网发展为核心,涵盖数字互联网发展和数字普惠金融两大方面,为评估和比较不同地区数字经济的发展提供了重要工具。2000-2022年中国各地级市数字经济指数数据(经济指数数据、计算方法、参考文献).zip资源-CSDN......
  • 2024-08-28:用go语言,给定一个从1开始、长度为n的整数数组nums,定义一个函数greaterCount
    2024-08-28:用go语言,给定一个从1开始、长度为n的整数数组nums,定义一个函数greaterCount(arr,val)可以返回数组arr中大于val的元素数量。按照以下规则进行n次操作,将nums中的元素分配到两个数组arr1和arr2中:1.第一次操作将nums[1]加入arr1。2.第二次操作将nums[2]加入arr2。3.对......
  • 每日OJ_牛客_求正数数组的最小不可组成和(01背包)
    目录牛客_求正数数组的最小不可组成和(01背包)解析代码牛客_求正数数组的最小不可组成和(01背包)求正数数组的最小不可组成和_百度笔试题_牛客网题目:给定一个全是正数的数组arr,定义一下arr的最小不可组成和的概念:arr的所有非空子集中,把每个子集内的所有元素加起来会出现......
  • 2024-08-21:用go语言,给定一个从 0 开始索引的整数数组 nums 和一个整数 k,请设计一个算
    2024-08-21:用go语言,给定一个从0开始索引的整数数组nums和一个整数k,请设计一个算法来使得数组中的所有元素都大于或等于k,返回所需的最少操作次数。每次操作可以执行以下步骤:1.选择数组中最小的两个整数x和y。2.从数组中删除x和y。3.计算min(x,y)*2+max(x,y)......
  • [题解]P3311 [SDOI2014] 数数
    P3311[SDOI2014]数数看到多模式匹配,我们考虑先对所有模式串建立AC自动机。然后发现这道题和P4052文本生成器(题解)挺像的,后者让求包含至少一个模式串的个数,这道题让求一个也不包含的个数,这个就是一个用不用\(26^m\)去减的问题,很好处理。但这道题还多了一个条件,“幸运数”必须\(......