本文共 457 字,大约阅读时间需要 1 分钟。
题意:一个字符串,若包含两个连续的相同子串,则为容易的串,如“ABCDBCDE”,否则称为困难的串,给定n和L,输出由前L个大写字母组成的字典序第n小的困难的串。
dfs,每当枚举的字符串是一个复杂字符串时,进入下一个dfs,直到dfs层数到了n时,输出字符串。
判断是否为困难字符串的方法,因为dfs的上一个字符串一定为复杂字符串,所以,只需要判断它的后缀字符串是否与相邻的相等即可。
#include#include #include #include using namespace std;const int maxn=1e6+5;int n,l;int ans[maxn];int f;int cnt;int len;void dfs (int num){ cnt++; if(cnt==n+1) { int k=0,x=0; for (int i=0;i
转载地址:http://cwoen.baihongyu.com/