T1的暴力死掉了。。。。。。

T3大众分。。。。。。

T2打了几个小表,发现了一些规律,成功yy出了$O(nlogalogn)$的暴力,拿到了73pts,弥补了爆炸的T1。

T1.

  考场上看了看,遥远的国度。由于我没做过,感觉硬刚可能GG,于是先放了。

  然而最后打了40pts暴力爆零了。。。。

  正解其实很简单,考虑当前根与原根的关系,讨论一下就好了。

T2.

  由于两个log,50w的数据范围,很大的优化空间,我果断地走向了暴力的道路。

  这题如果强制在线,我的方法应该就是正解了。

  思想很简单,我并没有转化题意,所以从一个完全不同的角度去考虑:

  某一个数,除非它是目前最小的,那么它必然在某一时刻会被$f[x-1][y-1]$更新,并且从此之后一直被它更新。

  那么,我们可以发现,这两项的差成为了定值,为$a[y]$。

  而在它被上一列更新之前,就会一直被自己的前一项更新,以等差数列的形式增长。

  那么我们要求某一项$f[x][y]$值的时候,就可以一直去找它的$f[x-1][y-1]$项,直到这一项已经是等差数列的形式,然后求出当前项,递推回去即可。

  我们考虑如何确定当前项已经是等差数列。显然我们可以预处理出来,对于每个$a[y]$,它到第几项不再是等差数列。(l[x])

  我们考虑怎么预处理。二分答案,对于每一个二分的值,我们假设当前仍然是等差数列,比较它与$f[x-1][y-1]+a[y]$的大小,若小于,说明当前项由上一列更新更优,不再是等差数列。

  下一个问题是,如何求出$f[x-1][y-1]$的值。由于之前的数我们已经将它何时不再成为等差数列处理了出来,所以我们需要找到第一个成为等差数列的位置。

  继续二分答案,查询区间中最大的$l[x]$是否能被这个数利用。

  我们可以用ST表来实现$O(1)$查询,每次求出一个$l[x]$,在ST表末尾加入它即可。

  询问直接调用之前的求值函数即可。

  代码实现很简单,而且这大概是在线的唯一做法了。

  理论复杂度爆了,所以加了一些减枝,卡了卡常,A掉了。

  正解是将所有操作离线,维护一个下凸包,在凸包上三分。

  也许可以算自己A掉的A组题?

T3.

  母函数,NTT。

csps51(a)的更多相关文章

随机推荐

  1. 利用双重检查锁定和CAS算法:解决并发下数据库的一致性问题

    背景 ​ 最近有一个场景遇到了数据库的并发问题.现在先由我来抽象一下,去掉不必要的繁杂业务. ​ 数据库表book存储着每本书的阅读量,一开始数据库是空的,不存在任何的数据.当用户访问接口的时候,判断 ...

  2. meta标签中设置以极速模式打开网页

    1.网页meta标签中X-UA-Compatible属性的使用的极速模式 <meta http-equiv="X-UA-Compatible" content="I ...

  3. [Quarks PwDump]Hash dump神器

    好不好用就不用说了哈  记录下使用方式 也支持导出本地哈希.域控哈希等.配合hashcat神器 奇效. 它目前可以导出 : – Local accounts NT/LM hashes +history ...

  4. ‎Cocos2d-x 学习笔记(21.1) ScrollView “甩出”效果与 deaccelerateScrolling 方法

    1. 简介 “甩出”效果是当我们快速拖动container并松开后,container继续朝原方向运动,但是渐渐减速直到停止的效果. ScrollView的onTouchEnded方法会设置Timer ...

  5. 为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?

    之前在阅读<阿里巴巴Java开发手册>时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下: 那么我们首先来用例子来看看在循环体中用 + 或者用 StringBuilder 进行字符 ...

  6. html简介(1)

    HTML 是用来描述网页的一种语言. HTML 指的是超文本标记语言: HyperText Markup Language HTML 不是一种编程语言,而是一种标记语言

  7. Spring AOP的使用及案例

    一.什么是AOP AOP(Aspect-Oriented Programming,面向切面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善.通过 ...

  8. 罕见的coredump了

    最近,项目在越南版删档测试的时候,发生了罕见的coredump,简单记一点排查日志 目前的敏感词过滤是在C层做判定的,先后经过几个项目考验,模块算是比较稳定了.越南版有个需求,需要将敏感词里的空格去掉 ...

  9. 03 Node.js学习笔记之根据http请求路径返回不同数据

    在Nodejs中,当客户端请求的路径不同时,NodeJS处理返回不同的数据 步骤: //1.载入http模块 var http=require('http'); //2.创建一个http服务 var ...

  10. 在idea中添加try/catch的快捷键

    在idea中添加try/catch的快捷键ctrl+alt+t选中想被try/catch包围的语句,同时按下ctrl+alt+t,出现下图