首页 > 其他分享 >C. Binary String Copying

C. Binary String Copying

时间:2024-07-18 11:19:37浏览次数:16  
标签:Binary String int cin st -- Copying l0 r1

原题链接

题解

假如两个区间经过操作之后得到的字符串一样,说明不规则仅出现在两个区间的重合处

code

#include<bits/stdc++.h>
#define ll long long
using namespace std;

int l0[200005]={0};
int r1[200005]={0};

void solve()
{
    int n,m;
    cin>>n>>m;

    string s;
    cin>>s;
    s=' '+s;
    for(int i=1;i<=n;i++)
    {
        l0[i]=l0[i-1];
        if(s[i]=='0') l0[i]=i;
    }
    r1[n+1]=n+1;
    for(int i=n;i>=1;i--)
    {
        r1[i]=r1[i+1];
        if(s[i]=='1') r1[i]=i;
    }

    set<pair<int,int>> st;
    while(m--)
    {
        int x,y;
        cin>>x>>y;

        if(l0[y]>=r1[x])
        {
            st.insert({r1[x],l0[y]});
        }
        else st.insert({-1,-1});
    }
    cout<<st.size()<<'\n';
}
int main()
{
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int t=1;
    cin>>t;
    while(t--) solve();
    return 0;
}


标签:Binary,String,int,cin,st,--,Copying,l0,r1
From: https://www.cnblogs.com/pure4knowledge/p/18309136

相关文章

  • Java学习日历(String,StringBuilder,Stringjoiner)
     金额转换packageme.JavaStudy;importjava.util.Scanner;//币值转换publicclassCaptial{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);System.out.println("请输入一个数字");intnumber=sc.ne......
  • Java面试 : String
    串池:StringTable,可以理解为一个对象数组["a","b","ab"]每一个元素都是一个字符串对象1.常量池与串池的关系Strings1="a";Strings2="b";Strings3="ab";上述代码的运行过程:常量池中的信息会被加载到运行时常量池中,这时abab都是常量池中的符号,还没有变成Java......
  • STL—string类—模拟实现
    STL—string类—模拟实现熟悉了string的结构和各自接口的使用之后,现在就要尝试去模拟实现string类这个string类为了避免和我们库里的string类冲突,因此我们需要定义一个自己的命名空间namespacewzf{ classstring{public: //成员函数private: //......
  • CF825F String Compression题解
    思路容易想到是个动态规划。首先设\(f_i\)表示字符串前\(i\)个字符所组成的字符串的答案。状态定义好了,接下来就是考虑如何转移了。因为由\(f_i\)可以得到所有\(f_j\),其中\(i+j\lelen\),转移方程为\(f_i=f_j+x\),其中\(x\)为字符串\(i+1\)至\(j\)的最优压缩。接......
  • B. Nezzar and Binary String
    原题链接题解正着来发现很怪,倒着来发现顺多了code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;constllN=114514;lltree[8*N]={0};lltag[8*N]={0};stringa,b;voidbuild(intnode,intl,intr){tag[node]=-1;if(l==r){......
  • bluz glib编程 --- GVariant Format Strings 介绍
    GVariantFormatStrings类型字符串实例分析(sa{sv}as)外层是元组类型,内含三个成员,分别是字符串s字典类型数组a{sv},字符串作为key,variant作为value字符串类型数组as(i@ii)外层是元组类型,内含三个成员,分别是gint类型数字类型ivariant类型@i,对应数字......
  • QT字符串QString
    QString#include<QString>追加字符QStringstr1="hello";QStringstr2="world";str1.append(str2);//str1="helloworld"str1.append("!");//str1="helloworld!......
  • G. Anya and the Mysterious String
    原题链接题解对于区间全部元素\(+x\)等价于对差分数组的\(d[l]+=x\),\(d[r+1]-=x\)也就是只修改了两个点如果存在回文串,要么是\(s[i]==s[i-1]\)要么是\(s[i]==s[i-2]\),所以我们可以用\(set\)维护23回文串的右端点code#include<bits/stdc++.h>#definelllonglon......
  • 深入理解Java中的String类
    深入理解Java中的String类大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在这篇文章中,我将详细介绍Java中的String类,并结合实际代码示例,帮助大家更好地理解和应用String类。1.String类概述String类是Java中最常用的类之一,用于表示不可变的字符序列。St......
  • C++字符串String和字符串字面量String Literals
    在C++中,字符串(String)是一种用于表示和处理文本数据的基本类型。C++提供了两种主要的字符串类型:C风格字符串(C-StyleString):使用字符数组表示。标准库字符串(std::string):使用标准库中的std::string类表示。1.C风格字符串C风格字符串是一个以空字符(\0)结尾的字符数组。以下是......