魔法石 尺取
发布日期:2021-09-25 23:57:44 浏览次数:7 分类:技术文章

本文共 1268 字,大约阅读时间需要 4 分钟。

魔法石

时间限制: 1 Sec 内存限制: 128 MB
[提交] [状态]
题目描述
你习得了魔法,并学会了熟练运用魔法石。
你得到了n颗魔法石,魔法石有两种属性,分别为火属性和水属性。你一开始得到的是这n颗魔法石的一个排列。定义这n颗魔法石释放出来的能量,为最长的属性相同的魔法石连续段的长度。
作为一名熟练的魔法师,你还可以至多修改k个魔法石的属性。你现在想知道这n颗魔法石最多可以释放出多少能量。
输入
第一行为两个正整数n,k,表示魔法石的个数和最多可以修改的魔法石数量。
接下来一行为一个长度为n的字符串,第i个字符表示第i颗魔法石的属性,a为火属性,b为水属性。
输出
输出为一行一个正整数,表示这n颗魔法石最多可以释放出的能量大小。
样例输入 Copy
【样例1】
4 2
abba
【样例2】
8 1
aabaabaa
样例输出 Copy
【样例1】
4
【样例2】
5
提示
对于30%的数据,满足n≤20。
对于60%的数据,满足n≤1000。
对于另外20%的数据,满足所有魔法石属性均相同。
对于100%的数据,满足1≤k≤n≤105。

cf原题翻译版。。

题意就是让你找到修改k个属性后,最长同属性的魔法石长度。

数据很大,用尺取就可很好的解决,做的尺取也不是很多,寻思半天,我太vegetable了。
显然有两种情况,一个是改成 a ,一个是改成 b。说下改成 a 的情况,首先模拟一个队列,从头开始往队列里面放元素,是 a 的话直接放进去,是 b 的话判断是否有可用的操作改成 a ,有的话直接把 b 放进去,没有的话需要从队头开始去掉 a ,一直去到出现 b 为止,让后每次更新答案即可。

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define X first#define Y second#define L (u<<1)#define R (u<<1|1)#define Mid (tr[u].l+tr[u].r>>1)#define Len(u) (tr[u].r-tr[u].l+1)using namespace std;typedef long long LL;typedef pair
PII;const int N=100010,mod=1e9+7,INF=0x3f3f3f3f;const double eps=1e-6;int n,k,ans;char str[N],s[N];void solve(char a,char b){ int l=0,hh=0,tt=-1; for(int i=0;str[i];i++) { if(str[i]==a) s[++tt]=a; else { if(l

转载地址:https://blog.csdn.net/DaNIelLAk/article/details/105959159 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:poj 3250 Bad Hair Day 单调栈
下一篇:upc 卡德加的兔子 线段树 + 矩阵快速幂

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月05日 23时22分29秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

【春招&实习&秋招】前端学习の优质资料整理&心路历程(已上岸) 2019-04-26
【手撕原理】面试官:来吧,手写一个简单版的 Promise 2019-04-26
js 实现数组去重 普通项与对象项 2019-04-26
js 让数组展平的 五种 方式 2019-04-26
【亡羊补牢】挑战数据结构与算法 第35期 LeetCode 22. 括号生成(递归与回溯) 2019-04-26
【亡羊补牢】挑战数据结构与算法 第36期 LeetCode 236. 二叉树的最近公共祖先(二叉树) 2019-04-26
【亡羊补牢】挑战数据结构与算法 第37期 LeetCode 108. 将有序数组转换为二叉搜索树(二叉树) 2019-04-26
【亡羊补牢】挑战数据结构与算法 第38期 LeetCode 450. 删除二叉搜索树中的节点(二叉树)【详解】 2019-04-26
【亡羊补牢】挑战数据结构与算法 第39期 LeetCode 501. 二叉搜索树中的众数(二叉树) 2019-04-26
【亡羊补牢】挑战数据结构与算法 第40期 LeetCode 437. 路径总和 III(二叉树) 2019-04-26
【亡羊补牢】挑战数据结构与算法 第41期 LeetCode 129. 求根到叶子节点数字之和(二叉树) 2019-04-26
【亡羊补牢】挑战数据结构与算法 第42期 LeetCode 257. 二叉树的所有路径(二叉树) 2019-04-26
【亡羊补牢】挑战数据结构与算法 第43期 LeetCode 404. 左叶子之和(二叉树) 2019-04-26
【亡羊补牢】挑战数据结构与算法 第44期 LeetCode 112. 路径总和(二叉树) 2019-04-26
【亡羊补牢】挑战数据结构与算法 第51期 LeetCode 102. 二叉树的层序遍历(二叉树) 2019-04-26
【亡羊补牢】挑战数据结构与算法 第52期 LeetCode 113. 路径总和 II(二叉树) 2019-04-26
【亡羊补牢】挑战数据结构与算法 第53期 LeetCode 100. 相同的树(二叉树) 2019-04-26
【源码篇:总结与思考】虚拟节点与DOM Diff算法源码实现 2019-04-26
【亡羊补牢】挑战数据结构与算法 第54期 LeetCode 543. 二叉树的直径(二叉树) 2019-04-26
【亡羊补牢】挑战数据结构与算法 第55期 LeetCode 124. 二叉树中的最大路径和(二叉树) 2019-04-26