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. centos7 scrapy安装

    1.anaconda3安装 wget https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh 安装报错,可能是源的问题 ...

  2. 死磕 java线程系列之线程池深入解析——体系结构

    (手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本. 简介 Java的线程池是块硬骨头,对线程池的源码做深入研究不仅能提高对Java整个并发编程的理解,也能提高自己 ...

  3. 工业搬运机器人(AGV)为什么要选择视觉导航

    在智能制造和仓储物流领域,搬运机器人的需求量在逐年上升.机器人(AGV)的种类千差万别,如何选择成为需求方头痛的问题. 本文将从客户关心的多个方面,对市面上的常见的工业级导航方案做一个比较. 搬运机器 ...

  4. 深入研究BufferedReader底层源码

    目录 1 概述 2 BufferedReader源码分析 3 意外发现 1 概述 最近研究JDK IO流这一块源码,发现真的比较简单,而且还有很多意外发现,如果大家对JDK源码感兴趣,不妨从IO流这一 ...

  5. 09-01 Tensorflow1基本使用

    目录 Tensorflow基本使用 一.确认安装Tensorflow 二.获取MNIST数据集 三.使用Tensorflow训练--Softmax回归 四.使用Tensorflow训练--卷积神经网络 ...

  6. Orecle基本概述(1)

    Orecle1.什么是orecle及体系结构?* 全局数据库,指物理磁盘数据库,一个真实存在的磁盘目录.*用户: 用户在oracle里面是用来隔离数据的*表空间: 逻辑结构,不可视的,虚拟的,用户的数 ...

  7. F#周报2019年第42期

    新闻 TypeShape的性能 .NET Core 3.0包含.NET Framework API移植项目 宣告.NET Core 3.1预览版1 .NET Core 3.1预览版1中ASP.NET ...

  8. ABAP实现Blowfish加密算法

    看到SAP社区中有人问是否存在ABAP实现的Blowfish加密算法,无人回答.于是动手实现了一个blowfish-abap.通过blowfish-abap可以在SAP系统中使用Blowfish对数据 ...

  9. postman环境变量设置

    1.点击小齿轮进入到环境变量添加页面,点击add添加环境变量 2.输入变量名称和变量值 3.添加成功 4.接口中设置变量

  10. 第3章(1) Linux内核相关概念

    Linux内核的组成 1. Linux内核源代码的目录结构 arch:包含和硬件体系结构相关的代码,每种平台占一个相应的目录,如 i386.arm. arm64.powerpc.mips 等.Linu ...