题意:给一个序列以及\(n\)个查询,每一个查询是问(假装)把第\(a_i\)个数改为\(b_i\)之后原序列的最长上升子序列的长度。

思路:线段树优化\(dp\)。

肯定离线做啊。

首先我们考虑\(dp\)的状态是\(dp_L(i)\)表示以第\(i\)位为结束的最长上升子序列的长度和方案数\(mod\ 998244353\)。

之所以方案数要模某个数是因为这个方案数太大太大了,肯定爆\(long\ long\)。

就因为这个我\(wa\)了一次\(test\ case\ 13\)。

开心的不得了呢

\(dp_R(i)\)的定义类似,只是以\(i\)为开始而已。

考虑转移,以\(dp_L\)为例。

\(dp_L(i)=dp_L(j)+1\)当且仅当\(j<i and a_j < a_i\)。

那么这肯定可以用线段树来维护啊。

只需要用一个单点修改、区间查询的zkw就好了。

那么我们考虑把\(i\)换掉之后会发生什么。

首先新的LIS可以分成两部分考虑:

  • 必须包含新的数,那么就是我们可以考虑把\(i\)按照原来的\(dp\)方式转移,只不过需要添加查询数的\(dp\)值。
  • 不能包含新的数,那么有点难考虑。
    但是我们知道一个性质:如果我们所有的原来的LIS都经过这原来的数,
    那么现在不经过原来数的LIS最大也不会超过原来的-1,而且是肯定能够达到的。
    我们只需要统计经过原来这个数的LIS个数。
    也就是\(dp_L(i)*dp_R(i)\)。

然后取必须包含这一位和必须不包含的\(max\)就是答案了。

【Codeforces 650 D】Zip-line的更多相关文章

  1. 【Codeforces Rockethon 2014】Solutions

    转载请注明出处:http://www.cnblogs.com/Delostik/p/3553114.html 目前已有[A B C D E] 例行吐槽:趴桌子上睡着了 [A. Genetic Engi ...

  2. 【57.97%】【codeforces Round #380A】Interview with Oleg

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  3. 【42.86%】【Codeforces Round #380D】Sea Battle

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  4. 【26.83%】【Codeforces Round #380C】Road to Cinema

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  5. 【17.76%】【codeforces round 382C】Tennis Championship

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  6. 【21.21%】【codeforces round 382D】Taxes

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  7. 【50.88%】【Codeforces round 382B】Urbanization

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  8. 【CodeForces 353 A】Domino

    [链接] 我是链接,点我呀:) [题意] [题解] 分类讨论一波 设第一个数组的奇数个数为cnt1 第二个数组的奇数个数为cnt2 显然只有在(cnt1+cnt2)%2==0的情况下. 才可能第一个数 ...

  9. 【Codeforces Round 418】An impassioned circulation of affection DP

                                                            C. An impassioned circulation of affection   ...

随机推荐

  1. Linux常用基本命令:三剑客命令之-awk动作用法(1)

    1,多个动作,怎么写? ghostwu@dev:~/linux/awk$ cat host.txt name ip地址 host1 192.168.1.1 host2 192.177.81.1 hos ...

  2. Linux常用基本命令:三剑客命令之-awk模式用法(1)

    再次回顾一下,awk基本语法格式: awk [options] 'Pattern {Action}' file1 file2 ··· 之前的文章有讲过两种Pattern(BEGIN, END),本文, ...

  3. 从零开始学习html(七)CSS样式基本知识

    一.内联式css样式,直接写在现有的HTML标签中 <!DOCTYPE HTML> <html> <head> <meta http-equiv=" ...

  4. 每篇半小时1天入门MongoDB——1. MongoDB介绍和安装

    目录:ASP.NET MVC企业级实战目录 MongoDB简介 MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种.它在许多场景下可用于替代传统的关系型数据 ...

  5. 《数据库系统概念》11-扩展的E-R特性

    ​虽然基本的E-R特性可以应对大部分数据库建模,但为了使用方便,也提供扩展的E-R特性 一.特化Specialization有时一个实体集会保护若干子集,这些子集各自具有不同的属性.比如person可 ...

  6. 《Inside C#》笔记(二) 初识C#

    一 程序的编译.构成 a) 编写C#代码一般用VS,但作者在这儿介绍了使用记事本编写C#代码并编译运行的过程,以便对VS有更深入的认识. 用记事本编写C#代码后,修改文本文件的后缀为.cs,然后用cs ...

  7. Android 2018最新验证手机号正则表达式

    /** * 判断字符串是否符合手机号码格式 * 移动号段: 134,135,136,137,138,139,147,150,151,152,157,158,159,170,178,182,183,18 ...

  8. 根据学习廖雪峰老师的git教程做的笔记

    根据学习廖雪峰老师的git教程做的笔记 安装git 进行git的配置 配置您的用户名和邮箱地址,使用--global 这个参数表明了在此台机器上的所有仓库都会使用该配置 $ git config -- ...

  9. Spring Boot 静态页面

    spring boot项目只有src目录,没有webapp目录,会将静态访问(html/图片等)映射到其自动配置的静态目录,如下 /static /public /resources /META-IN ...

  10. Python实例---模拟微信网页登录(day3)

    第四步: 扫码成功后获取最近联系人信息---day3代码 settings.py """ Django settings for weixin project. Gene ...