Codeforces #344 Div.2
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的更多相关文章
- Codeforces #345 Div.1
Codeforces #345 Div.1 打CF有助于提高做题的正确率. Watchmen 题目描述:求欧拉距离等于曼哈顿距离的点对个数. solution 签到题,其实就是求有多少对点在同一行或同 ...
- Codeforces Beta Round #27 (Codeforces format, Div. 2)
Codeforces Beta Round #27 (Codeforces format, Div. 2) http://codeforces.com/contest/27 A #include< ...
- Codeforces#441 Div.2 四小题
Codeforces#441 Div.2 四小题 链接 A. Trip For Meal 小熊维尼喜欢吃蜂蜜.他每天要在朋友家享用N次蜂蜜 , 朋友A到B家的距离是 a ,A到C家的距离是b ,B到C ...
- codeforces #592(Div.2)
codeforces #592(Div.2) A Pens and Pencils Tomorrow is a difficult day for Polycarp: he has to attend ...
- codeforces #578(Div.2)
codeforces #578(Div.2) A. Hotelier Amugae has a hotel consisting of 1010 rooms. The rooms are number ...
- codeforces #577(Div.2)
codeforces #577(Div.2) A Important Exam A class of students wrote a multiple-choice test. There are ...
- codeforces #332 div 2 D. Spongebob and Squares
http://codeforces.com/contest/599/problem/D 题意:给出总的方格数x,问有多少种不同尺寸的矩形满足题意,输出方案数和长宽(3,5和5,3算两种) 思路:比赛的 ...
- Codeforces Round #344 (Div. 2) A. Interview
//http://codeforces.com/contest/631/problem/Apackage codeforces344; import java.io.BufferedReader; i ...
- Codeforces Round #344 (Div. 2) A
A. Interview time limit per test 1 second memory limit per test 256 megabytes input standard input o ...
随机推荐
- 文档生成工具doxygen+图像生成工具GraphViz
文档生成工具doxygen+图像生成工具GraphViz 虽然jdk自带的javadoc也很好用,不过使用doxygen+GraphViz 的组合可以生成许多强大的图(类图.协作图.文件包含/被包含图 ...
- mongoDB windows reinstall add auth
Mongodb默认启动是不带认证,也没有账号,只要能连接上服务就可以对数据库进行各种操作,这样可不行.现在,我们得一步步开启使用用户和认证. 第一步,我们得定位到mongodb的安装目录.我本机的是C ...
- 如何将ASM中的数据文件复制到操作系统中
环境:Red Hat 5.7 + Oracle 10.2.0.5.0 Rac+ASM 如果你的Oracle数据库系统使用正使用ASM自动存储管理,你可曾想过要窥视一下ASM中的数据文件,ASM是个黑匣 ...
- grep, egrep, fgrep笔记
grep, egrep, fgrep grep: 根据模式搜索文本,并将符合模式的文本行显示出来.Pattern: 文本字符和正则表达式的元字符组合而成匹配条件 grep [options] PATT ...
- unmount的时候报错
卸载存储的时候报错 device is busy 解决办法 例:/mnt/test 为存储挂载点 fuser -m -v /mnt/test fuser 可以显示出当前哪个程序在使用磁盘上的某个文件. ...
- 【转】android电池(四):电池 电量计(MAX17040)驱动分析篇
关键词:android 电池 电量计 MAX17040 任务初始化宏 power_supply 平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台: ...
- jQuery 局部div刷新和全局刷新方法
div的局部刷新 $(".dl").load(location.href+".dl"); 全页面的刷新方法 window.location.reload( ) ...
- #include<math.h>
1.sin(a)类:a是弧度值: 2.abs(b):结果是b的绝对值: 3.exp(c):exp()用来计算以e为底的x次方值,即ex值,然后将结果返回.返回值: 返回e的x次方计算结果. 4.log ...
- jdk7 中Collections.sort 异常
Collections.sort 异常 java.lang.IllegalArgumentException: Comparison method violates its general contr ...
- poj 3308 (最大流)
题意:n*m的地图,给出L个火星人登陆的坐标,要在火星人登陆地球的瞬间全部消灭他们,有一种激光枪,一次可以消灭一行(或一列),消灭一行(或一列)有不同的代价,总代价是所有激光枪的代价之积. 思路:之前 ...