UVa129 困難的串

2021-08-19 13:27:59 字數 480 閱讀 9324

輸入依舊是坑。。。

#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",cur);//將字串輸出後 退出dfs,每段都要退

return 0;

} for(int i=0;iif(equal)

} if(ok) if(!dfs(cur+1))return 0;//如果合法,繼續排下乙個位置,不合法排下乙個字母

//實際上有了這句,程式就很少回溯了,會無限往後面排 }}

int main()

return 0;

}

uva 129 困難的串

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

uva 129 困難的串

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

UVA 129 困難的串

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