題目大意:如果乙個字串包含兩個相鄰的重複子串,則稱它是"容易的串", 其他串稱為"困難的串"; 列如, 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 代表構造困難的串所需要的...