Description

众所周知,白神是具有神奇的能力的。

比如说,他对数学作业说一声“数”,数学作业就会出于畏惧而自己完成;对语文作业说一声“语”,语文作业就会出于畏惧而自己完成。

今天,语文老师和数学老师布置了许多作业,同学们纷纷寻找白神寻求帮助。白神作为一个助人为乐的人,便答应下来。

回到家,白神将这N份作业按顺序摊开,发现语文作业数学作业混在一起,这就让白神苦恼起来,他如果对连续一段作业喊出“数”,那么里面的语文作业就会由于过于慌乱而写满错解,不过如果白神再对其喊一声“语”,它又会写满正确答案。

虽然白神很强大,但是能力还是有限制的,一天只能使用K次,现在,白神想知道他能正确的完成多少份作业。

Input

第一行两个整数N,K。
第二行N个0或者1表示这份作业是语文作业还是数学作业。

Output

输出一个整数,表示白神能正确完成的作业数。

Sample Input

5 2
0 1 0 1 0

Sample Output

4

HINT

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 ;
}

最新文章

  1. python os模块
  2. 查看Linux内核
  3. 【转】MSMQ 微软消息队列 简单 示例
  4. ASP.NET 分页控件
  5. jQuery学习-----(二)JQuery对象与DOM对象的区别与转换
  6. C#Json转DataTable
  7. HDU-5706
  8. Android studio怎么使用自定义的framework而避免冲突报错和点不进去报红。
  9. 三天STL与pbds(平板电视)
  10. python并发编程之进程池,线程池,协程
  11. Codeforces Round #449 (Div. 2)
  12. MVVM 和 VUE
  13. webpack中file-loader和url-loader的关系
  14. hdoj:2047
  15. javascript64位加密
  16. C++中对象模型
  17. Extjs 自定义控件
  18. Mac下 cordova 安装随笔
  19. Dubbo源码解读
  20. wsgi &amp; cgi的一些概念解释

热门文章

  1. Description Resource Path Location Type Java compiler level does not match the version of the instal
  2. visio二次开发——图纸解析之线段
  3. vijos1531 食物链
  4. Linux进程间通信(九):数据报套接字 socket()、bind()、sendto()、recvfrom()、close()
  5. 1&#183;3 对 git 的认识
  6. ASP.NET Core--授权过滤器
  7. 关于 JSONP跨域示例
  8. BZOJ 4576: [Usaco2016 Open]262144
  9. androi手机解锁引导程序
  10. jquery写简单的div切换