首页 > 其他分享 >E. Nearly Shortest Repeating Substring

E. Nearly Shortest Repeating Substring

时间:2024-03-29 15:23:41浏览次数:21  
标签:return int cin len Substring flag Nearly Repeating

原题链接

题解

1.模拟题,注意细节
2.时间复杂度 \(O(n·sqrt(n))\)

code

#include<bits/stdc++.h>
using namespace std;
int n;
string s;
int check(int len)
{
    int flag=0;
    for(int k=0;k<len;k++)
    {
        int a[26]={0};
        for(int i=k;i<n;i+=len)
        {
            a[s[i]-'a']++;
        }
        sort(a,a+26,greater<>());
        if(a[0]==n/len) continue;//如果只出现了一个数
        else if(a[0]==n/len-1&&a[1]==1) flag++;//如果出现了两个数,且只能出现一次
        else return 0;
        if(flag>1) return 0;
    }
    return 1;
}
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        cin>>n>>s;
        int ans=n;
        for(int i=1;i<=n;i++)
        {
            if(n%i==0)
            {
                if(check(i))
                {
                    ans=i;
                    break;
                }
            }
        }
        cout<<ans<<endl;
    }
    return 0;
}

标签:return,int,cin,len,Substring,flag,Nearly,Repeating
From: https://www.cnblogs.com/pure4knowledge/p/18103925

相关文章

  • Codeforces Round 937 (Div. 4)----->E. Nearly Shortest Repeating Substring
    一,思路:1.这题很容易想到枚举n的因数(时间复杂度n^(1/2)),然后根据这个长度枚举字符串,看是否满足最多只有一个不相同(时间复杂度n)。总的时间复杂度是(n根号n)的级别。又n是1e5级别所以可以过。但是当n是1e6就不行了。2.难点在于如何判断,一个字符串的不同字符数量,主要是hshah......
  • 【数据库】PostgreSQL中使用`SELECT DISTINCT`和`SUBSTRING`函数实现去重查询
    在PostgreSQL中,我们可以使用SELECTDISTINCT和SUBSTRING函数来实现对某个字段进行去重查询。本文将介绍如何使用这两个函数来实现对resource_version字段的去重查询。1.SELECTDISTINCT语句SELECTDISTINCT语句用于从表中选择不重复的记录。如果没有指定列名,则会选择所有列。在......
  • CF1930D1 - Sum over all Substrings (Easy Version)
    对于每一个\(f(i,j)\),我们考虑如何计算。我们发现,\(\texttt{1010}\)式的字符串很有用,所以这启发我们如果遇到了一个模式\(p_i=\texttt{'1'}\),那么我们可以在\(i+1\)的位置放一个\(\texttt{'1'}\)。这样我们直接处理了\(i,i+1,i+2\)。容易证明这是最优的。#incl......
  • UVA10829 L-Gap Substrings
    我永远喜欢数据结构。貌似是此题中第一个使用SA+分治+二维数点做法的题解?题目传送门给出字符串\(s\)和常数\(g\),求出有多少四元组\((l_1,r_1,l_2,r_2)\),满足\(s[l_1,r_1]=s[l_2,r_2]\)且\(r_1+g+1=l_2\)。\(T\)组数据,\(1\leT,g\le10\),\(|s|\le5\times10......
  • CF163A Substring and Subsequence 题解
    分析考虑DP。定义状态函数$f_{i,j}$表示在$s[1\dotsi]$中选一个子串$a$,在$t[1\dotsj]$中选一个子序列$b$,且$s_i,t_j$必选时$a=b$的方案数。则有两种情况:$s_i\net_j$。此时$a$和$b$是不可能相同的了,所以$f_{i,j}=0$。$s_i=t_j$。在只选$s_i,t_j$时......
  • Go 100 mistakes - #41: Substrings and memory leaks
        WeneedtokeeptwothingsinmindwhileusingthesubstringoperationinGo. First,theintervalprovidedisbasedonthenumberofbytes,notthenumberofrunes. Second,asubstringoperationmayleadtoamemoryleakastheresultings......
  • MySQL字符串截取总结:Left()、Right()、Substring()、Substring_index()
    在实际的项目开发中有时会有对数据库某字段截取部分的需求,这种场景有时直接通过数据库操作来实现比通过代码实现要更方便快捷些,mysql有很多字符串函数可以用来处理这些需求,如Mysql字符串截取总结:left()、right()、substring()、substring_index()。一.从左开始截取字符串用法:le......
  • CF316G3 Good Substrings
    题意简述有一个字符串\(s\)和\(n\)条限制,每条限制给出字符串\(t_i\)和两个整数\(l_i,r_i\),要求一个字符串要满足在\(t_i\)中的出现次数要在\([l_i,r_i]\)之间。求\(s\)有多少本质不同的子串满足所有限制。\(|s|,\max|t|\le5\times10^4,n\le10\)分析“本质不同......
  • ABC240Ex Sequence of Substrings
    题意简述有长度为\(n\)的01串,你现在要选出\(k\)个两两无交子串,使得将\(k\)个子串按照出现位置排序后,后者的字典序严格比前者大。最大化\(k\)。\(\bm{n\le2\times10^4}\)。分析首先的首先观察数据范围可知此题应该是个线性根号对数的时间复杂度首先有个显然的\(O(n......
  • CodeCraft-22 and Codeforces Round 795 (Div. 2)C. Sum of Substrings(分类讨论、贪
    感觉分类讨论的能有点弱。遇到复杂一点的分类讨论的题目,代码就写的巨长。首先观察到处在中间位置的1对答案的贡献是11,具体在中间哪个位置是没有关系的。只有两端的两个位置是比较特殊的\(1位置处的1对答案的贡献是10\)\(2位置处的1对答案的贡献是1\)所有我们考虑将最左端第一......