这道题目是香蕉的加强版

当m=100w时矩阵会很大,而且又有多组询问,所以这道题用原来香蕉的程序会T

所以我们需要更好点的做法

我们考虑优化我们的状态

首先考虑这道题的隐藏性质,考虑不合法的情况

那么A至少是B的2倍,我们考虑不合法的一段,容易证明这段的最大长度不会超过logm

不妨设s[i]表示长度为i的每个位置都不合法的方案数

由于长度是logm,所以对于s的求解是m*log^2m的

用一些奇技淫巧可以优化一下常数,使得复杂度接近m*logm

之后我们考虑容斥

设f[i][0]表示长度为i的不合法的位置至少为偶数个的方案数

f[i][1]表示长度为i的不合法的位置至少为奇数个的方案数

这是很容易的DP的,DP的时候枚举末尾一段有多少个连续不合法的即可

根据枚举的长度分奇数偶数讨论转移

之后我们发现这个转移是固定的,而且转移涉及的状态数只有2*logm个

所以我们可以考虑构造矩阵来优化转移

这样矩阵乘法一次的时间复杂度为8*log^3m,远远比上一道香蕉的做法要优秀

最后的答案显然是f[n][0]-f[n][1],对于每个询问暴力矩阵乘法就可以了

总时间复杂度O(logn*log^3m+mlogm)

就这样,我们就可以完美的解决这道题目了

在CTSC的时候,徐明宽大爷说矩阵乘法在求单行或单列的时候是可以做到n^2的

那么我们可以用这个方法继续优化EX_香蕉,这样就可以把T扩大,变成EX_EX_香蕉了

cojs EX_香蕉 题解报告的更多相关文章

  1. cojs 奈特 题解报告

    才知道knight念奈特,而不念科耐特 这个题显然是一个数据结构题目,我搬运的CF上的题 CF的题解好长超长哒,而且可以在线,但是并不能看懂 于是自己想了一个一种做法A掉了,唯一的缺陷就是做法有些繁琐 ...

  2. cojs 榴莲 题解报告

    首先这道题目是求第k大 求第k大我们有逐位确定,主席树,整体二分等等方法 首先我们考虑如何处理每个询问 我们可以二分答案k,之后扫一遍之前的操作 我们只需要知道有多少个权值>=k的操作经过当前点 ...

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

    OwO 题目含义都是一样的,只是数据范围扩大了 对于n<=7的问题,我们直接暴力搜索就可以了 对于n<=1000的问题,我们不难联想到<主旋律>这一道题 没错,只需要把方程改一 ...

  4. cojs 二分图计数问题1-3 题解报告

    OwO 良心的FFT练手题,包含了所有的多项式基本运算呢 其中一部分解法参考了myy的uoj的blog 二分图计数 1: 实际是求所有图的二分图染色方案和 我们不妨枚举这个图中有多少个黑点 在n个点中 ...

  5. 2015浙江财经大学ACM有奖周赛(一) 题解报告

    2015浙江财经大学ACM有奖周赛(一) 题解报告 命题:丽丽&&黑鸡 这是命题者原话. 题目涉及的知识面比较广泛,有深度优先搜索.广度优先搜索.数学题.几何题.贪心算法.枚举.二进制 ...

  6. 题解报告:hdu 1398 Square Coins(母函数或dp)

    Problem Description People in Silverland use square coins. Not only they have square shapes but also ...

  7. 题解报告:hdu 2069 Coin Change(暴力orDP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2069 Problem Description Suppose there are 5 types of ...

  8. 题解报告:hdu 1028 Ignatius and the Princess III(母函数or计数DP)

    Problem Description "Well, it seems the first problem is too easy. I will let you know how fool ...

  9. CF Educational Round 78 (Div2)题解报告A~E

    CF Educational Round 78 (Div2)题解报告A~E A:Two Rival Students​ 依题意模拟即可 #include<bits/stdc++.h> us ...

随机推荐

  1. 主引导记录MBR

    作者:马 岩(Furzoom) (http://www.cnblogs.com/furzoom/)版权声明:本文的版权归作者与博客园共同所有.转载时请在明显地方注明本文的详细链接,未经作者同意请不要删 ...

  2. MATLAB light material lighting

    clf;[X,Y,Z]=sphere(40);colormap(jet)subplot(1,2,1),surf(X,Y,Z),axis off square,shading interplight(' ...

  3. Crusher Django 学习笔记1 hello world

    http://crusher-milling.blogspot.com/2013/09/crusher-django-tutorial1-hello-world.html 随便学习一下goagent ...

  4. protected internal修饰符

    见过这样的修饰符,但是没有仔细考虑过,今天做一个小练习. 先给出一个链接,别人在网上讨论的:http://wenku.baidu.com/view/4023f65abe23482fb4da4cfe.h ...

  5. C# 缓存学习第一天

    缓存应用目的:缓存主要是为了提高数据的读取速度.因为服务器和应用客户端之间存在着流量的瓶颈,所以读取大容量数据时,使用缓存来直接为客户端服务,可以减少客户端与服务器端的数据交互,从而大大提高程序的性能 ...

  6. Android修改system只读权限

    在Root后的真机上使用adb remount命令不知道为什么不行. 但有些时候还是想向system文件夹下面写文件,例如把tcpdump工具放到/system/bin 下面,然后就可以直接使用tcp ...

  7. [MySql] 设置了UTF8,中文存数据库中仍然出现问号

    运行命令:SHOW VARIABLES LIKE 'character_set_%'; 结果 'character_set_client', 'utf8' 'character_set_connect ...

  8. Java Day 02

    关键字 都是小写,类名首字母大写 标识符 1.数字不可以开头 2.不可以使用关键字 区分大小写 26个大小写字母.0-9._.$ 组成 main是关键字么? 注释 单行注释 // 多行注释 /* */ ...

  9. html笔记 仅适用于个人

    如何使图片与文本框上下对齐 其实就给<img>加一个属性 align="absmiddle" <form method="post" acti ...

  10. windows 2012上配置好iis后出现不能访问的现象

    新买的阿里云服务器,今天把环境弄了一下,安装iis之后不能访问网页 原因:没有安装asp.net 找到服务器管理器->(右上角)添加角色和功能->下一步下一步...找到应用程序 -> ...