[2020牛客寒假算法基础集训营1]H-nozomi和字符串

这道题跟我之前做过的这道题十分像。直接就改改拿过来用了。

就是将每个0的下标记录。尽量完成k次的变换。那么所获得对于每个变换位置尽量长的11串的长度表示就是 v0[i + m] - v0[i - 1] - 1了

记得特判k大于等于0的数量的情况。

复制代码
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
    int n, m, pre = 0, cur = 0, numa = 0, numb = 0;
    cin >> n >> m;
    char c;
    string s;
    int ii = n;
    while (ii--)
    {
        cin >> c;
        s += c;
    }
    vector<int> v0, v1;//分别存0的下标,1的下标
 
    for (int i = 0; i < n; i++)
    {
        if(s[i] == '0')
            v0.push_back(i);
        if(s[i]== '1')
            v1.push_back(i);
    }
    if (v0.size() <= m)
    {
        cout << n << endl;
        return 0;
    }
    vector<int> res;
 
 
    res.push_back(v0[0 + m]);
    for (int i = 1; i + m < v0.size(); i++)
    {
        res.push_back(v0[i + m] - v0[i - 1] - 1);
    }
 
    sort(res.begin(), res.end());
    cout << res[res.size() - 1] << endl;
 
    return 0;
}
复制代码

 

posted @   ViKyanite  阅读(185)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示
主题色彩