zoukankan      html  css  js  c++  java
  • 3.8——K-th Substring

    题目描述

    You are given a string s. Among the different substrings of s, print the K-th lexicographically smallest one.
    A substring of s is a string obtained by taking out a non-empty contiguous part in s. For example, if s = ababc, a, bab and ababc are substrings of s, while ac, z and an empty string are not. Also, we say that substrings are different when they are different as strings.
    Let X=x1x2…xn and Y=y1y2…ym be two distinct strings. X is lexicographically larger than Y if and only if Y is a prefix of X or xj>yj where j is the smallest integer such that xj≠yj.

    Constraints
    1 ≤ |s| ≤ 5000
    s consists of lowercase English letters.
    1 ≤ K ≤ 5
    s has at least K different substrings.
    Partial Score
    200 points will be awarded as a partial score for passing the test set satisfying |s| ≤ 50.

    输入

    Input is given from Standard Input in the following format:
    s
    K

    输出

    Print the K-th lexicographically smallest substring of K.

    样例输入

    复制样例数据

    aba
    4
    

    样例输出

    b
    

    提示

    s has five substrings: a, b, ab, ba and aba. Among them, we should print the fourth smallest one, b. Note that we do not count a twice.

    来源/分类

    ABC097&ARC097 

    意思就是找字串,求出第k大的。

    #include <cstdio>
    #include <iostream>
    #include <cstring>
    #include <set>
    using namespace std;
    
    set<string> p;
    int main ()
    {
        string s;
        int k;
        cin>>s>>k;
        int i,j;
        int n=s.size();
        for (i=0;i<=n-1;i++)
            for (j=1;j<=5;j++)
            {
                if (i+j-1>=n) continue;
                p.insert(s.substr(i,j));
            }
        for (i=1;i<=k-1;i++)
        {
            p.erase(p.begin());
        }
        cout<<(*(p.begin()))<<endl;//这样使用
        return 0;
    }
    
  • 相关阅读:
    [CF997E] Good SubSegment
    CF916E
    BZOJ2006 超级钢琴
    BZOJ4571
    凸包总结
    树形DP入门
    bzoj4300 绝世好题(位运算+DP)
    bzoj4552 [Tjoi2016&Heoi2016]排序 (线段树+二分)
    SP1716 GSS3
    Noip2009 Hankson 的趣味题 (简单数学)
  • 原文地址:https://www.cnblogs.com/skyleafcoder/p/12319526.html
Copyright © 2011-2022 走看看