Codeforces #344 Div.2

Interview

题目描述:求两个序列的子序列或操作的和的最大值

solution
签到题

时间复杂度:\(O(n^2)\)

Print Check

题目描述:有一个棋盘,对其进行染色,每次染一行或一列,后来的颜色会覆盖原来的颜色,输出最后的棋盘。

solution
题解用二维线段树,其实可以不用。
对染色进行离线操作,那么染过的格子、行、列就不用再染了。所以每个格子可以记录四个指针,分别是行前驱,行后继,列前驱列后继,染色时按照这个跳着来染就好了。

时间复杂度:\(O(\alpha(nm) nm)\)

Report

题目描述:给出一个序列,操作为选定一个位置\(i\),然后把序列前\(i\)个数按升序或降序排列,输出最后的序列

solution
经观察可得,对于先后两个操作,如果后者的\(i\)大于前者的,则相当于前者没有操作。所以可以对操作进行删减,使得操作的范围是递减的,然后用线段树维护最大最小值即可。

时间复杂度:\(O(nlogn)\)

Messenger

题目描述:一个字符串将以若干个字符区间的形式给出:\((s, ch)\),表示该区间为\(s\)个\(ch\)字符组成,然后把这些区间连起来就是完整的字符串。给出两个这样的字符串,问二串在一串中的出现次数。

solution
先将相邻的同字符区间进行合并,假设二串有\(m\)个区间,那么第\(2\)个区间到第\(m-1\)个区间一定要与一串区间一一对应,区间\(1\)和\(m\)可以只匹配一串的区间的一部分。那么就相等于把区间\(2\)到区间\(m-1\)看成一个新串,然后做KMP,算答案时判断头尾是否可行就可以了。
要特判\(m=1,2\)的情况。

时间复杂度:\(O(n)\)

Product Sum

题目描述:给出一个序列,序列的值为\(\sum_{i=1}^{n} a_i \cdot i\),现将一个数取出,然后任意找一个地方放回,只能操作一次,为序列的值的最大值。

solution
我们可以求修改之后的序列的值与原序列的值的差。
对于区间\([L, R]\),如果把\(a_L\)放到位置\(R\)则差为(\(sum\)为前缀和)
\(sum_L-a_L \cdot L + a_L \cdot R -sum_R\)
如果把\(a_R\)放到位置\(L\)则差为
\(sum_{R-1}-a_R \cdot R + a_R \cdot L -sum_{L-1}\)

枚举左端点或右端点,式子的前两项为定值,后两项可看成是直线,那么就可以用线段树维护凸壳。

时间复杂度:\(O(nlogn)\)

Codeforces #344 Div.2的更多相关文章

  1. Codeforces #345 Div.1

    Codeforces #345 Div.1 打CF有助于提高做题的正确率. Watchmen 题目描述:求欧拉距离等于曼哈顿距离的点对个数. solution 签到题,其实就是求有多少对点在同一行或同 ...

  2. Codeforces Beta Round #27 (Codeforces format, Div. 2)

    Codeforces Beta Round #27 (Codeforces format, Div. 2) http://codeforces.com/contest/27 A #include< ...

  3. Codeforces#441 Div.2 四小题

    Codeforces#441 Div.2 四小题 链接 A. Trip For Meal 小熊维尼喜欢吃蜂蜜.他每天要在朋友家享用N次蜂蜜 , 朋友A到B家的距离是 a ,A到C家的距离是b ,B到C ...

  4. codeforces #592(Div.2)

    codeforces #592(Div.2) A Pens and Pencils Tomorrow is a difficult day for Polycarp: he has to attend ...

  5. codeforces #578(Div.2)

    codeforces #578(Div.2) A. Hotelier Amugae has a hotel consisting of 1010 rooms. The rooms are number ...

  6. codeforces #577(Div.2)

    codeforces #577(Div.2) A  Important Exam A class of students wrote a multiple-choice test. There are ...

  7. codeforces #332 div 2 D. Spongebob and Squares

    http://codeforces.com/contest/599/problem/D 题意:给出总的方格数x,问有多少种不同尺寸的矩形满足题意,输出方案数和长宽(3,5和5,3算两种) 思路:比赛的 ...

  8. Codeforces Round #344 (Div. 2) A. Interview

    //http://codeforces.com/contest/631/problem/Apackage codeforces344; import java.io.BufferedReader; i ...

  9. Codeforces Round #344 (Div. 2) A

    A. Interview time limit per test 1 second memory limit per test 256 megabytes input standard input o ...

随机推荐

  1. g++ error: expected ‘)’ before ‘*’ token

    原本*号前面的类型是我用typedef自定义的类型的,MyType* const p: 发生这样的错误是,编译器根本不知道MyType是什么东西,这是我在C++多重继承中遇到的.MyType是我在基类 ...

  2. Windows7安装SQL Server 2008图解

    不知是什么时候,把这篇博客给删除了,今天才发现,想恢复好像又不行,所以重新发布一下吧! 这几天因为需要,一直想安装SQL Server 2008来作为Web后台的数据库进行些实验,但总是没有时间,今天 ...

  3. perl 爬取csdn

    <pre name="code" class="python">use LWP::UserAgent; use POSIX; use HTML::T ...

  4. Unix/Linux环境C编程入门教程(37) shell常用命令演练

     cat命令 cat命令可以用来查看文件内容. cat [参数] 文件名. grep-指定文件中搜索指定字符内容. Linux的目录或文件. -path '字串' 查找路径名匹配所给字串的所有文件 ...

  5. 一次使用Eclipse Memory Analyzer分析Tomcat内存溢出

    转:http://tivan.iteye.com/blog/1487855 前言 在平时开发.测试过程中.甚至是生产环境中,有时会遇到OutOfMemoryError,Java堆溢出了,这表明程序有严 ...

  6. 关于#ifndef,#define,#end的说明

    #ifndef,#define,#end 是宏定义的一种---条件编译 这样我直接举个例子好了:我定义两个相同的类A分别在single.h和singlenew.h single.h: #include ...

  7. 用Matlab完成:从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

    程序思路: (1)一圈人循环报数,报数报到3的人,将其置为0,表示被淘汰: (2)那么在接下去的循环中,被淘汰的人不参与报数: (3)直到仅有1人没被淘汰,并显示出他之前的编号. 程序实现如下: cl ...

  8. Masterha-manager避免自动关闭的方法

    Masterha-manager启动默认是前端启动 在用MHA配置了MySQL高可用集群时,当master挂掉,完成高可用切换后,Masterha-manager会自动关闭,这不是我想要的...... ...

  9. HA高可用的搭建

    HA 即 (high available)高可用,又被叫做双机热备,用于关键性业务. 简单理解就是,有两台机器A和B,正常是A提供服务,B待命闲置,当A宕机或服务宕掉,会切换至B机器继续提供服务.常用 ...

  10. 四、Mp3文件类型及其判断

    根据前两篇文章的分析,帧分为标签帧和数据帧,MP3文件类型是根据数据帧的类型来分的,文件类型如下表: 位率相等(Constant BitRate) CBR  Mp3文件 位率不等(Variable B ...