牛客网 Wannafly挑战赛12 删除子串(线性dp)
题目描述
变化:如果a[i]!=a[i+1]则为一次变化。(且新的字符串的首字母必须是'a')
如果初始串全为b,则输出0。
输入描述:
输出描述:
输出一个数字表示最长长度
示例1
输入
8 2
aabbabab
输出
6
说明
原串可以变成aabbbb,只改变了一次,且长度最长。
题意
如上
题解
一看到这题就是Dp题,从变化次数m切入
这里j指变化次数,数组a是指最后放的是字符a的长度,b同理
a[j]=max(a[j]+1,b[j-1]+1),s[i] = 'a'(1<=j<=m+1)
b[j]=max(b[j]+1,a[j-1]+1),s[i] = 'b'
上面的意思是,如果s[i] = ‘a’,a[j]直接加上去,或者由b[j-1]通过变化加上去
这里由于新的字符串要求以‘a’开头,所以假设新串以‘b’通过变化得到为开始点
代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m,a[],b[];
char s[];
for(int i=;i<=;i++)
a[i]=b[i]=-1e9;
cin>>n>>m;
m++;b[]=;
scanf("%s",s+);
for(int i=;i<=n;++i)
for(int j=m;j;--j)
if(s[i]=='a')
a[j]=max(a[j]+,b[j-]+);
else
b[j]=max(b[j]+,a[j-]+);
int ans=;
for(int i=m;i;--i)
ans=max(ans,max(a[i],b[i]));
cout<<ans;
return ;
}
牛客网 Wannafly挑战赛12 删除子串(线性dp)的更多相关文章
- 牛客网Wannafly挑战赛25A 因子(数论 素因子分解)
链接:https://www.nowcoder.com/acm/contest/197/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...
- 牛客网 Wannafly挑战赛27 蓝魔法师
蓝魔法师 链接: https://www.nowcoder.com/acm/contest/215/C 来源:牛客网 题目描述 "你,你认错人了.我真的,真的不是食人魔."--蓝魔 ...
- 牛客网 Wannafly挑战赛8 B.LBJX的三角形
B-LBJX的三角形 链接:https://www.nowcoder.com/acm/contest/57/B来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K, ...
- 牛客网 Wannafly挑战赛8 A.小Y和小B睡觉觉
写了一会不想写了... A-小Y和小B睡觉觉 链接:https://www.nowcoder.com/acm/contest/57/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制: ...
- 牛客网 Wannafly挑战赛9 C.列一列-sscanf()函数
C.列一列 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld 链接:https://www.now ...
- 题解——牛客网Wannafly挑战赛23 B-游戏 (SG函数)
前言 比赛的时候没学过SG函数的蒟蒻以为是道结论题,但是不是QwQ 和dummyummy巨佬一起推了快三个小时的规律 最后去问了真正的巨佬__stdcall __stdcall面带微笑的告诉我们,这是 ...
- 牛客网 Wannafly挑战赛11 B.白兔的式子-组合数阶乘逆元快速幂
链接:https://www.nowcoder.com/acm/contest/73/B来源:牛客网 B.白兔的式子 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K, ...
- 牛客网 Wannafly挑战赛11 A.白兔的分身术
水一水博客. 链接:https://www.nowcoder.com/acm/contest/73/A来源:牛客网 A.白兔的分身术 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C ...
- 牛客网 Wannafly挑战赛9 A.找一找-数据处理
好几天没好好学习了(咸鱼晒干了) 把稍微没那么咸鱼的几天前的一场牛客网的比赛稍微看了一下,菜的要死,这一场大数的比较多,都死了. A.找一找 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C ...
随机推荐
- mysql 索引优化知识整理笔记
http://blog.csdn.net/zhxp_870516/article/details/8434539 http://www.jb51.net/article/49346.htm https ...
- ELK实时日志分析平台环境部署--完整记录(转)
在日常运维工作中,对于系统和业务日志的处理尤为重要.今天,在这里分享一下自己部署的ELK(+Redis)-开源实时日志分析平台的记录过程(仅依据本人的实际操作为例说明,如有误述,敬请指出)~ ==== ...
- Zookeeper 在Linux系统的安装
注册中心Zookeeper 官方推荐使用 zookeeper 注册中心.注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小. Z ...
- css给文字加下划线
语法:linear-gradient(direction, color-stop 1, color-stop 2,……) 简单用法:background-image: linear-gradient( ...
- linux 2.6.32文件系统的dentry父子关系
我们知道,linux文件系统,inode和dentry是有对应关系的,dentry是文件名或者目录的一个管理结构,2.6内核中: struct dentry { atomic_t d_count; u ...
- Resize CentOS Linux hard drive partition (centos 6.3 调整LVS磁盘大小)
查看当前磁盘信息: [root@localhost ~]# df -h 文件系统 容量 已用 可用 已用%% 挂载点/dev/mapper/VolGroup-lv_root ...
- SQL Server 生成 数据字典 / 数据库文档
1. 工具生成 2.SQL语句生成 参考地址:http://blog.csdn.net/qq289523052/article/details/22174721 1.在 表 上右键 - 扩展属性 - ...
- mysql 拼接字符
Mysql的查询结果行字段拼接,可以用下面两个函数实现: 1. concat函数 mysql> select concat('1','2','3') from test ; +--------- ...
- redis异常Redis:java.util.NoSuchElementException: Unable to validate object at
前两天项目上线的时候遇到了redis的一个问题,在测试环境的时候项目运行正常,项目一上线redis便开始抛异常. redis.clients.jedis.exceptions.JedisConnect ...
- Ubuntu下Git从搭建到使用详解
Ubuntu下Git从搭建到使用详解 一.git的搭建 (1).sudo apt-get update (2).sudo apt-get -y install git 符:安装最新版本方法: add- ...