zoukankan      html  css  js  c++  java
  • AtCoder

    Problem Statement

    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 = ababcabab and ababc are substrings of s, while acz and an empty string are not. Also, we say that substrings are different when they are different as strings.

    Let X=x1x2xn and Y=y1y2ym 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 xjyj.

    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

    Input is given from Standard Input in the following format:

    s
    K
    

    Output

    Print the K-th lexicographically smallest substring of K.

    Sample Input 1

    aba
    4
    

    Sample Output 1

    b
    

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

    Sample Input 2

    atcoderandatcodeer
    5
    

    Sample Output 2

    andat
    

    Sample Input 3

    z
    1
    

    Sample Output 3

    z


    一看这种题第一反应:裸上SAM啊!
    但是一看数据范围:艹这是连SAM都不用的傻逼题了。
    因为字典序第K小肯定不会超过K位,所以直接暴力+去重就可以做了QWQ

    #include<bits/stdc++.h>
    #define ll long long
    using namespace std;
    const int maxn=5005;
    string ch[maxn*6];
    char s[maxn];
    int n,k,cnt;
    int main(){
    	scanf("%s%d",s,&k),n=strlen(s);
    	for(int i=0,T;i<n;i++){
    		ch[++cnt]=s[i];
    		T=min(k,n-i);
    		for(int j=1;j<T;j++,cnt++) ch[cnt+1]=ch[cnt]+s[i+j];
    	}
    	
    	sort(ch+1,ch+cnt+1);
    	unique(ch+1,ch+cnt+1);
    	cout<<ch[k]<<endl;
    	return 0;
    }
    
    
    

      

     
  • 相关阅读:
    iOS面试题
    iOS-block
    iOS开发设计模式
    iOS-宏定义
    正则表达式(转)
    iOS-textfield控制光标开始位置
    initWithNibName&initWithCoder &awakeFromNib&UIView常见属性方法
    iOS应用生命周期
    iOS-app发布新版本步骤
    iOS从App跳转至系统设置菜单各功能项
  • 原文地址:https://www.cnblogs.com/JYYHH/p/9037189.html
Copyright © 2011-2022 走看看