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;
    }
    
    
    

      

     
  • 相关阅读:
    PHP操作目录(文件夹)的常用函数
    PHP处理时间的常用函数
    PHP操作文件的常用函
    PHP处理数组的常用函数
    PHP处理字符串的常用函数
    什么是 CGI?什么是 FastCGI?php-fpm,FastCGI,Nginx 之间是什么关系?
    一天一个 Linux 命令(18):ln 命令
    IntelliJ IDEA get set 快捷键
    mysql的一些问题记录
    数据库的乐观锁和悲观锁是什么?怎么实现的?
  • 原文地址:https://www.cnblogs.com/JYYHH/p/9037189.html
Copyright © 2011-2022 走看看