cojs 疯狂的字符串 题解报告

首先这道题是GT考试的加强版本QAQ

当n<k的时候,答案显然是10^n

当n=k的时候,答案显然是10^n-1

这样就有20分辣

之后我们考虑k<=20的做法

显然设f(i,j)表示前i位匹配到了第j位

之后用KMP来转移就可以了

如果不用矩阵乘法优化的话时间复杂度O(n*k*10)

如果用矩阵乘法的话时间复杂度O(k^3logn)

其实就是GT考试的做法辣

这样就有50分了

之后我们考虑用dp来容斥

设fi表示前i位且第一次匹配的位置是[i-k+1,i]的方案

不难发现fi=m^(i-k)-sigma(fj*m^(i-k-j))-sigma(fj)

其中第一个fj保证j<=i-k

第二个fj保证[i-k+1,j]这段前缀是数字串的一个后缀

这个判定可以用哈希或者KMP解决

这其实是一个卷积形式

我们机智的构造一个多项式g来转移

之后就可以做CDQ+FFT辣

时间复杂度O(nlog^2n)

可以得到100分了

实际上我们移项之后可以得到

m^(i-k)=sigma(fj*gi-j)

构造多项式h

得到h=f*g,则f=h*g^(-1)

多项式求逆即可

时间: 2024-08-10 18:05:31

cojs 疯狂的字符串 题解报告的相关文章

cojs 强连通图计数1-2 题解报告

OwO 题目含义都是一样的,只是数据范围扩大了 对于n<=7的问题,我们直接暴力搜索就可以了 对于n<=1000的问题,我们不难联想到<主旋律>这一道题 没错,只需要把方程改一改就可以了 首先我们考虑不合法的方案强连通分量缩点后一定是DAG 考虑子问题:DAG计数 做法可以参考<cojs DAG计数1-4 题解报告> 这里给出转移方程 f(n)=sigma((-1)^(k-1)*C(n,k)*2^(k*(n-k))*f(n-k)) 如果考虑上强连通分量缩点的情况呢? 我

cojs 安科赛斯特 题解报告

QAQ 从IOI搬了一道题目过来 官方题解貌似理论上没有我的做法优,我交到BZOJ上也跑的飞快 结果自己造了个数据把自己卡成了4s多,真是忧桑的故事 不过貌似原题是交互题,并不能离线 说说我的做法吧 首先我们会写暴力,而我的做法只要会写暴力就可以了 对于一个询问A,B 我们有以下几种方法: 1.搞出所有颜色是A的DFS序对应区间的左右端点和所有颜色是B的DFS序对应区间的左右端点 然后把所有端点排个序,线性扫一遍,维护一个扫描线cnt,当遇到A的左端点时++cnt,遇到A的右端点时--cnt 遇

cojs QAQ的矩阵 题解报告

题目描述非常的清晰 首先我们考虑(A*B)^m的求法,这个部分可以参考BZOJ 杰杰的女性朋友 我们不难发现(A*B)^m=A*(B*A)^(m-1)*B A*B是n*n的矩阵,而B*A是k*k的矩阵,这样就大大缩小了矩阵的大小 因为矩阵乘法满足结合律,我们先对(B*A)做快速幂,之后乘一下就可以了 之后我们考虑如果没有(i-1)^3的这个系数怎么求G(i)的前缀和 因为矩阵乘法满足分配率,我们利用矩阵倍增((B*A)^0+(B*A)^1……+(B*A)^(m-1))之后乘一下就可以了 之后我们

2016 年宁波工程学院第七届ACM校赛题解报告

2016 年宁波工程学院第七届ACM校赛题解报告 本题解代码直接为比赛代码,仅供参考. A,B,C,D,G,H,J,K,L,M 来自 Ticsmtc 同学. F 来自 Gealo 同学. E,I 来自Alex 学长. Promblem A :    Two Sum 时间限制: 1 Sec  内存限制: 64 MB 题目描述: 给出n个数,另外给出?个整数S,判断是否可以从中取出2个数,使得这两个数的和是S. 输入: 第?行有个整数T(1 <= T <= 10),代表数据组数. 对于每组数据,第

线段树&#183;题解报告

线段树·题解报告 参考资料 ·课件 线段树 --刘汝佳 统计的力量,线段树全接触 --张昆玮 ·Blog [完全版]线段树 从普通线段树到zkw线段树 [总结][数据结构]ZKW线段树详解 选题目录 · Hdu1166 敌兵布阵(单点更新,区间求和) · Hdu1754 I Hate It(单点更新,RMQ) · Hdu3308 LCIS(单点更新,区间并) · Poj3468 A Simple Problem with Integers(区间加减,区间求和) · Poj2777 Count C

题解报告:hdu 1162 Eddy&#39;s picture

Problem Description Eddy begins to like painting pictures recently ,he is sure of himself to become a painter.Every day Eddy draws pictures in his small room, and he usually puts out his newest pictures to let his friends appreciate. but the result i

题解报告:poj 3320 Jessica&#39;s Reading Problem(尺取法)

Description Jessica's a very lovely girl wooed by lots of boys. Recently she has a problem. The final exam is coming, yet she has spent little time on it. If she wants to pass it, she has to master all ideas included in a very thick text book. The au

题解报告:poj 2480 Longge&#39;s problem(欧拉函数)

Description Longge is good at mathematics and he likes to think about hard mathematical problems which will be solved by some graceful algorithms. Now a problem comes: Given an integer N(1 < N < 2^31),you are to calculate ∑gcd(i, N) 1<=i <=N. 

题解报告(CDUT暑期集训——第三场)

题解报告(CDUT暑期集训--第三场) A - Problem A. Ascending Rating HDU - 6319 思路:单调队列板子题?(但是弱的一批的我还是不会用(有空补上 用的滑动窗口算法 按着题解的从后往前做(ps:菜是原罪 AC代码 #include<stdio.h> #include<iostream> #include<math.h> #include<algorithm> #include<string.h> #incl