bzoj 3791: 作业
Description
众所周知,白神是具有神奇的能力的。
比如说,他对数学作业说一声“数”,数学作业就会出于畏惧而自己完成;对语文作业说一声“语”,语文作业就会出于畏惧而自己完成。
今天,语文老师和数学老师布置了许多作业,同学们纷纷寻找白神寻求帮助。白神作为一个助人为乐的人,便答应下来。
回到家,白神将这N份作业按顺序摊开,发现语文作业数学作业混在一起,这就让白神苦恼起来,他如果对连续一段作业喊出“数”,那么里面的语文作业就会由于过于慌乱而写满错解,不过如果白神再对其喊一声“语”,它又会写满正确答案。
虽然白神很强大,但是能力还是有限制的,一天只能使用K次,现在,白神想知道他能正确的完成多少份作业。
Input
第一行两个整数N,K。
第二行N个0或者1表示这份作业是语文作业还是数学作业。Output
输出一个整数,表示白神能正确完成的作业数。
Sample Input
5 2
0 1 0 1 0Sample Output
4HINT
100%的数据中N ≤ 100000,K<=50.
化简一下题意就很简单了:自己构造一个$2K-1$段的$0-1-0$的数列,问你和原数列的最大相同数..
dp一下,$f_{i,j,0...1}$表示到原数列$i$位置,第$j$段,为$0...1$
转移的话,统计一个前缀最大值就好了
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
using namespace std;
const int Maxn = ;
int f[Maxn][], maxx[Maxn][];
int sum[Maxn][];
int n, K;
int _max ( int x, int y ){ return x > y ? x : y; }
int main (){
int i, j, k;
scanf ( "%d%d", &n, &K );
maxx[][] = maxx[][] = -0x7fffffff;
for ( i = ; i <= n; i ++ ){
int x;
scanf ( "%d", &x );
sum[i][] = sum[i-][]; sum[i][] = sum[i-][];
sum[i][x] ++;
f[i][] = sum[i][];
f[i][] = sum[i][];
maxx[i][] = _max ( maxx[i-][], f[i][]-sum[i][] );
maxx[i][] = _max ( maxx[i-][], f[i][]-sum[i][] );
}
int ans = _max ( f[n][], f[n][] );
int st = ;
K = *K-;
for ( i = ; i <= K; i ++ ){
for ( j = i; j <= n; j ++ ){
f[j][] = sum[j][]+maxx[j-][];
f[j][] = sum[j][]+maxx[j-][];
}
ans = _max ( ans, _max ( f[n][], f[n][] ) );
maxx[i][] = f[i][]-sum[i][];
maxx[i][] = f[i][]-sum[i][];
for ( j = i+; j <= n; j ++ ){
maxx[j][] = _max ( maxx[j-][], f[j][]-sum[j][] );
maxx[j][] = _max ( maxx[j-][], f[j][]-sum[j][] );
}
}
printf ( "%d\n", ans );
return ;
}
bzoj 3791: 作业的更多相关文章
- [BZOJ 3791] 作业 【DP】
题目链接:BZOJ - 3791 题目分析 一个性质:将一个序列染色 k 次,每次染连续的一段,最多将序列染成 2k-1 段不同的颜色. 那么就可以 DP 了,f[i][j][0|1] 表示到第 i ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- BZOJ 2326: [HNOI2011]数学作业( 矩阵快速幂 )
BZOJ先剧透了是矩阵乘法...这道题显然可以f(x) = f(x-1)*10t+x ,其中t表示x有多少位. 这个递推式可以变成这样的矩阵...(不会用公式编辑器...), 我们把位数相同的一起处理 ...
- BZOJ 3236 AHOI 2013 作业 莫队+树状数组
BZOJ 3236 AHOI 2013 作业 内存限制:512 MiB 时间限制:10000 ms 标准输入输出 题目类型:传统 评测方式:文本比较 题目大意: 此时己是凌晨两点,刚刚做了Co ...
- BZOJ 3236: [Ahoi2013]作业
3236: [Ahoi2013]作业 Time Limit: 100 Sec Memory Limit: 512 MBSubmit: 1393 Solved: 562[Submit][Status ...
- 树套树专题——bzoj 3110: [Zjoi2013] K大数查询 & 3236 [Ahoi2013] 作业 题解
[原题1] 3110: [Zjoi2013]K大数查询 Time Limit: 20 Sec Memory Limit: 512 MB Submit: 978 Solved: 476 Descri ...
- Bzoj 3236: [Ahoi2013]作业 莫队,分块
3236: [Ahoi2013]作业 Time Limit: 100 Sec Memory Limit: 512 MBSubmit: 1113 Solved: 428[Submit][Status ...
- [BZOJ 2326] [HNOI2011] 数学作业 【矩阵乘法】
题目链接:BZOJ - 2326 题目分析 数据范围达到了 10^18 ,显然需要矩阵乘法了! 可以发现,向数字尾部添加一个数字 x 的过程就是 Num = Num * 10^k + x .其中 k ...
- [BZOJ 3236] [Ahoi2013] 作业 && [BZOJ 3809] 【莫队(+分块)】
题目链接: BZOJ - 3236 BZOJ - 3809 算法一:莫队 首先,单纯的莫队算法是很好想的,就是用普通的第一关键字为 l 所在块,第二关键字为 r 的莫队. 这样每次端点移动添加或删 ...
随机推荐
- eclipse安装Eclipse Memory Analyzer插件
在Install New software中输入 http://archive.eclipse.org/mat/1.2/update-site/ 然后选择Memory Analyzer for Ecl ...
- es_Linux
命令:echo 显示.印出 echo $PATH 通过 "su - vbird"" 这个指令来变换到 vbird身份 权限: rwx rwx rwx 以4 2 1数字表 ...
- Spring各jar包的作用
spring.jar是包含有完整发布的单个jar 包,spring.jar中包含除了spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到 spring-m ...
- CentOS 6.3 中安装VirtualBOX增强工具失败:Building the main Guest Additions module[FAILED]
在VirtualBox里安装CentOS系统,会遇到“增强工具”无法正常安装,主要的原因是出在Kernel 库找不到. 错误提示如下: 通过查看日志文件: cat /var/log/vboxadd- ...
- javascript基础05
javascript基础05 1.变量的作用域 变量既可以是全局,也可以是局部的. 全局变量:可以在脚本中的任何位置被引用,一旦你在某个脚本里声明了全局变量,你就可以 在这个脚本的任何位置(包括函数内 ...
- php换行符
1.需求 统一php换行符 2.实践 使用PHP_EOL替换换行符,保证平台的兼容性. 类似的有DIRECTORY_SEPARATOR 参考文档:http://www.cnblogs.com/code ...
- tornado 第二种路由方法(装饰器)
#!/usr/bin/env python # _*_coding:utf-8 _*_ import tornado.ioloop import tornado.web application = t ...
- Retroactive priority queues
http://erikdemaine.org/papers/Retroactive_TALG/paper.pdf 明天写..大概就是通过一些结论发现这个东西其实就是往最后的集合里加入或删除一些可以被快 ...
- VC++ 制作一个简易的控制台时钟应用
1.下载EasyX Library for C++ (http://www.easyx.cn/) 直接下载:EasyX_20151015(beta) EasyX 绘图库目前支持 Visual C++ ...
- jQuery 名称冲突
jQuery 名称冲突 jQuery 使用 $ 符号作为 jQuery 的简介方式. 某些其他 JavaScript 库中的函数(比如 Prototype)同样使用 $ 符号. jQuery 使用名为 ...