题目描述

LHX教主要来X市指导OI学习工作了。为了迎接教主,在一条道路旁,一群Orz教主er穿着文化衫站在道路两旁迎接教主,每件文化衫上都印着大字。一旁的Orzer依次摆出“欢迎欢迎欢迎欢迎……”的大字,但是领队突然发现,另一旁穿着“教”和“主”字文化衫的Orzer却不太和谐。

为了简单描述这个不和谐的队列,我们用“j”替代“教”,“z”替代“主”。而一个“j”与“z”组成的序列则可以描述当前的队列。为了让教主看得尽量舒服,你必须调整队列,使得“jz”子串尽量多。每次调整你可以交换任意位置上的两个人,也就是序列中任意位置上的两个字母。而因为教主马上就来了,时间仅够最多作K次调整(当然可以调整不满K次),所以这个问题交给了你。

输入输出格式

输入格式:
输入文件welcome.in的第1行包含2个正整数N与K,表示了序列长度与最多交换次数。

第2行包含了一个长度为N的字符串,字符串仅由字母“j”与字母“z”组成,描述了这个序列。

输出格式:
输出文件welcome.out仅包括一个非负整数,为调整最多K次后最后最多能出现多少个“jz”子串。

输入输出样例

输入样例#1:
5 2
zzzjj
输出样例#1:
2
说明

【样例说明】

第1次交换位置1上的z和位置4上的j,变为jzzzj;

第2次交换位置4上的z和位置5上的j,变为jzzjz。

最后的串有2个“jz”子串。

【数据规模与约定】

对于10%的数据,有N≤10;

对于30%的数据,有K≤10;

对于40%的数据,有N≤50;

对于100%的数据,有N≤500,K≤100。

//因为题目中只有两种字符 'jj' 'jz' 'zz' 'zj'
//转移方程见代码
// 需要注意的一个细节就是只有j==k时才能跟新答案
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cstdlib>
using namespace std;
#define maxn 505
#define maxk 105
int f[maxn][maxk][maxk],n,m,ans;
//f[i][j][k]表示前i位交换了j次'j' k次'z'
char s[maxn];
int main(){scanf("%d%d",&n,&m);scanf("%s",s+1);memset(f,-0x3f,sizeof f );f[0][0][0]=f[1][0][0]=0; if(s[1]=='z') f[1][0][1]=0;else f[1][1][0]=0;for(int i=2;i<=n;i++)for(int j=0;j<=m;j++)for(int k=0;k<=m;k++){f[i][j][k]=f[i-1][j][k];if(s[i]=='z'&&s[i-1]=='j')f[i][j][k]=max(f[i][j][k],f[i-2][j][k]+1);if(s[i]=='z'&&s[i-1]=='z'&&k)f[i][j][k]=max(f[i][j][k],f[i-2][j][k-1]+1);if(s[i]=='j'&&s[i-1]=='j'&&j)f[i][j][k]=max(f[i][j][k],f[i-2][j-1][k]+1);if(s[i]=='j'&&s[i-1]=='z'&&j&&k)f[i][j][k]=max(f[i][j][k],f[i-2][j-1][k-1]+1);if(j==k) ans=max(ans,f[i][j][k]);}printf("%d",ans);return 0;
}

洛谷 P1136 迎接仪式相关推荐

  1. 洛谷 P1136 迎接仪式 解题报告

    P1136 迎接仪式 题目描述 LHX教主要来X市指导OI学习工作了.为了迎接教主,在一条道路旁,一群Orz教主er穿着文化衫站在道路两旁迎接教主,每件文化衫上都印着大字.一旁的Orzer依次摆出&q ...

  2. 洛谷1136 迎接仪式

    标签:区间DP 题目描述 LHX教主要来X市指导OI学习工作了.为了迎接教主,在一条道路旁,一群Orz教主er穿着文化衫站在道路两旁迎接教主,每件文化衫上都印着大字.一旁的Orzer依次摆出" ...

  3. P1136 迎接仪式

    P1136 迎接仪式 题目描述 LHX教主要来X市指导OI学习工作了.为了迎接教主,在一条道路旁,一群Orz教主er穿着文化衫站在道路两旁迎接教主,每件文化衫上都印着大字.一旁的Orzer依次摆出&q ...

  4. *P1136 迎接仪式 dp

    题目描述 LHX教主要来X市指导OI学习工作了.为了迎接教主,在一条道路旁,一群Orz教主er穿着文化衫站在道路两旁迎接教主,每件文化衫上都印着大字.一旁的Orzer依次摆出"欢迎欢迎欢迎欢 ...

  5. P1136 迎接仪式 (动态规划)

    题目描述 LHX教主要来X市指导OI学习工作了.为了迎接教主,在一条道路旁,一群Orz教主er穿着文化衫站在道路两旁迎接教主,每件文化衫上都印着大字.一旁的Orzer依次摆出"欢迎欢迎欢迎欢 ...

  6. 洛谷P1136火柴棒等式

    题目描述: 给你n根火柴棍,你可以拼出多少个形如"A+B=C"的等式?等式中的A.B.C是用火柴棍拼出的整数(若该数非零,则最高位不能是0).用火柴棍拼数字0-9的拼法如图所示: ...

  7. 洛谷刷题C语言:陶瓷项链、Cow Gymnastics B、Where Am I? B、Hello, 2020!、SIR 模型

    记录洛谷刷题C语言 一.[NOI2000] 瓷片项链 题目描述 原始部落用一种稀有的泥土烧制直径相同的圆瓷片并串成项链,串的时候沿瓷片的直径方向顺次连接,瓷片之间没有空隙也不重叠,一条项链至少由一个瓷 ...

  8. 【暑期每日一题】洛谷 P5886 Hello, 2020!

    题目链接:P5886 Hello, 2020! - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目背景 时针与分针重合在「零」的那一霎那,嘀嗒声便宣告了新一年的到来. 在过去的一年 ...

  9. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

最新文章

  1. c语言函数与编译预处理教学视频,C语言课程第6章 函数及编译预处理.ppt
  2. 微软:“不好意思,我们还不够Cool,不能运行”
  3. java redis keys_jedis keys和scan操作
  4. Flutter高级第3篇:底部 Tab 切换保持页面状态的几种方法
  5. 银行固定资产管理系统盘点方案
  6. 电池检测步入新领域,武汉蓝博三款科研电池测试设备来助力
  7. paypal/stripe商家工具-轮询支付系统更新
  8. Creator Kit: Beginner Code Unity学习记录 (1)
  9. 料酒是什么,怎么用?
  10. 【总结】有三AI所有原创人脸相关的学习资料汇总(2022年12月)
  11. Android4.0上添加截屏快捷方式
  12. SpingBoot/JAVA实现给图片加水印功能(通过thumbnailator库)
  13. adams语句_ADAMS模态力 - MSC技术文章 - 中国仿真互动网(www.Simwe.com)
  14. MACbook Air 装win7 步骤
  15. Android 集成Thinker 教程
  16. c#开发初学者之mvc及架构分层
  17. COOX基础培训之PMT
  18. (读书笔记)《玩着玩着就能成为ppt高手》——怎样才是一个“精彩的ppt”
  19. pytorch学习笔记之dataload
  20. CAS操作确保原子性

热门文章

  1. LoadRunner技巧之集合点设置
  2. opencv显示图片和保存图片
  3. 图像处理入门系列--使用numpy实现OTSU大津法及其改进
  4. ipad输入密码多次错误后锁屏
  5. 笨办法14提示和传递
  6. go-zero入门1
  7. n行Python代码系列:两行程序判断是否处于Debug模式
  8. 海南省东方市谷歌卫星地图下载
  9. ubuntu20.04 编译内核源码5.15.58
  10. QQ邮件定时发送天气预报