1 条题解

  • 0
    @ 2025-8-24 22:40:53

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar qwerty12346
    这个家伙很懒,什么也没有留下(互关)

    搬运于2025-08-24 22:40:53,当前版本为作者最后更新于2023-06-06 19:31:29,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    题目传送门

    题意

    就是求从第一份资料中搜索可能隐藏密码的位置。并要输出所有排列在 ss 中匹配次数的总和。

    思路

    因为密码是打乱的,所以要先对这个字符串排序。然后将排列后出现的号码依次相加,最后再在字符串中取连续 88 位,加上出现次数就可以了。

    代码

    #include<bits/stdc++.h>
    using namespace std;
    map<string,int>mp;//map容器统计出现的号码
    string s,x;
    int n,ret;
    int main(){
        cin>>s>>n;
        for(int i=1;i<=n;i++)
        {
            cin>>x;
            sort(x.begin(),x.end());//对字符串x排序
            mp[x]++;
        }
        for(int i=0;i<s.size()-7;i++)
        {
            x=s.substr(i,8);
            sort(x.begin(),x.end());
            ret+=mp[x];
        }
        cout<<ret;
        return 0;
    }
    
    • 1

    信息

    ID
    5943
    时间
    3000ms
    内存
    512MiB
    难度
    3
    标签
    递交数
    0
    已通过
    0
    上传者