uva 129 困難的串

2021-07-05 02:07:49 字數 425 閱讀 3813

題目大意:如果乙個字串包含兩個相鄰的重複子串,則稱它是"容易的串", 其他串稱為"困難的串"; 列如, bb,  abcdacabcab,  abcdabcd都是容易的串,而d, dc,  abdab都是困難的串; 輸入正整數n和l, 輸出由前l個字元組成的, 字典序第n小的困難的串;

#include #include #include #include using namespace std;

int n, l, cnt, ans;

int a[85];

int dfs(int cur)

return 0;

} else

}if(_equal == 1)

}if(ok)}}

return 1;

}int main()

}

uva 129 困難的串

先想出最簡單的解法 列舉字母串 書中所介紹的遞迴排列列舉演算法 每次產生乙個新串都進行檢查。檢查是否 困難 的方法是 外層迴圈列舉子串長度 中層迴圈列舉左側子串的起始位置 內層迴圈列舉子串中的字元的位置直覺上來說,這個方法就太笨重了。實際上這個方法進行了很多重複的工作 每次在原有字母串基礎上增加一位...

UVa129 困難的串

輸入依舊是坑。include include include include includeusing namespace std int n,l int cnt int s 100 int dfs int cur 表示排到第cur個字元 printf c a s i printf n d n cu...

UVA 129 困難的串

include include include using namespace std int cnt 0 代表字典序號 int l,n 定義構造困難的串所需要的前l個字元以及字典序的編號 char string 81 定義儲存字串的字元陣列 int dfs int cur 代表構造困難的串所需要的...