zoukankan      html  css  js  c++  java
  • 【CF1073A】Diverse Substring(签到)

    题意:给定一个由小写字母组成的串,要求找出一个子串使得其中出现最多的字母不超过它长度的一半下取整

    n<=1e3

    思路:

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<string>
     4 #include<cmath>
     5 #include<iostream>
     6 #include<algorithm>
     7 #include<map>
     8 #include<set>
     9 #include<queue>
    10 #include<vector>
    11 using namespace std;
    12 typedef long long ll;
    13 typedef unsigned int uint;
    14 typedef unsigned long long ull;
    15 typedef pair<int,int> PII;
    16 typedef vector<int> VI;
    17 #define fi first
    18 #define se second 
    19 #define MP make_pair
    20 #define N   11000
    21 #define MOD 1000000007
    22 #define eps 1e-8 
    23 #define pi acos(-1)
    24 
    25 int s[N][30];
    26 char ch[N];
    27 
    28 int main()
    29 {
    30     int n;
    31     scanf("%d",&n);
    32     scanf("%s",ch+1);
    33     for(int i=1;i<=n;i++)
    34     {
    35         for(int j=1;j<=26;j++) s[i][j]=s[i-1][j];
    36         s[i][ch[i]-'a'+1]++;
    37     }
    38     int x=0; 
    39     int y=0; 
    40     for(int i=1;i<=n;i++)
    41      for(int j=i;j<=n;j++)
    42       if(x+y==0)
    43       {
    44              int len=j-i+1;
    45              int tmp=0;
    46              for(int k=1;k<=26;k++) tmp=max(tmp,s[j][k]-s[i-1][k]);
    47              if(tmp<=len/2){x=i; y=j;}
    48       }
    49     
    50     if(x+y>0)
    51     {
    52         printf("YES
    ");
    53         for(int i=x;i<=y;i++) printf("%c",ch[i]);
    54     }
    55      else printf("NO
    ");
    56     return 0;
    57 }
  • 相关阅读:
    java 利用jsoup 爬取知乎首页问题
    ROIAlign, ROIPooling及ROIWarp对比
    yii2.0 gii
    mysql索引操作
    lbs basic mongodb
    php操作mongodb
    设计模式六大原则
    Java集合
    Java 快速失败( fail-fast ) 安全失败( fail-safe )
    计数数组中值的出现次数
  • 原文地址:https://www.cnblogs.com/myx12345/p/9853775.html
Copyright © 2011-2022 走看看