You have been employed by the organisers of a Super Krypton Factor Contest in which contestants
為商城等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及商城網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、商城網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
have very high mental and physical abilities. In one section of the contest the contestants are tested on
their ability to recall a sequenace of characters which has been read to them by the Quiz Master. Many
of the contestants are very good at recognising patterns. Therefore, in order to add some difficulty to
this test, the organisers have decided that sequences containing certain types of repeated subsequences
should not be used. However, they do not wish to remove all subsequences that are repeated, since in
that case no single character could be repeated. This in itself would make the problem too easy for the
contestants. Instead it is decided to eliminate all sequences containing an occurrence of two adjoining
identical subsequences. Sequences containing such an occurrence will be called “easy”. Other sequences
will be called “hard”.
For example, the sequence ABACBCBAD is easy, since it contains an adjoining repetition of the
subsequence CB. Other examples of easy sequences are:
? BB
? ABCDACABCAB
? ABCDABCD
Some examples of hard sequences are:
? D
? DC
? ABDAB
? CBABCBA
In order to provide the Quiz Master with a potentially unlimited source of questions you are asked
to write a program that will read input lines from standard input and will write to standard output.
Input
Each input line contains integers n and L (in that order), where n > 0 and L is in the range 1 ≤ L ≤ 26.
Input is terminated by a line containing two zeroes.
Output
For each input line prints out the n-th hard sequence (composed of letters drawn from the first L letters
in the alphabet), in increasing alphabetical order (Alphabetical ordering here corresponds to the normal
ordering encountered in a dictionary), followed (on the next line) by the length of that sequence. The
first sequence in this ordering is ‘A’. You may assume that for given n and L there do exist at least n
hard sequences.
As such a sequence is potentially very long, split it into groups of four (4) characters separated by
a space. If there are more than 16 such groups, please start a new line for the 17th group.
Your program may assume a maximum sequence length of 80.
For example, with L = 3, the first 7 hard sequences are:
A
AB
ABA
ABAC
ABACA
ABACAB
ABACABA
Sample Input
7 3
30 3
0 0
Sample Output
ABAC ABA
7
ABAC ABCA CBAB CABA CABC ACBA CABA
28
大致的題意:就是你要輸入一個(gè)n和L,分別代表前L個(gè)字母輸出第n個(gè)小的困難的串,而困難的串就是其中沒有連續(xù)重復(fù)的字符串
利用的方法就是回溯法
#include<bits/stdc++.h>
using namespace std;
int S[100],cnt;
int n,L;
int dfs(int cur){
//輸出當(dāng)前的hard sequence
//判斷的條件是cnt為n 也就是第n個(gè)小的hard sequence
if(cnt++==n){
//cur是當(dāng)前坐標(biāo)長度
for(int i=0;i<cur;i++){
//注意格式
printf("%c",'A'+S[i]);
if(i%64==63 && i!=cur-1) printf("\n");
else if(i%4==3 && i!=cur-1) printf(" ");
}
//輸出長度
printf("\n%d\n",cur);
return 0;
}
//接下來的內(nèi)容就是判斷當(dāng)前字符串是不是hard sequence
for(int i=0;i<L;i++){
S[cur]=i;
int ok=1;
for(int j=1;j*2<=cur+1;j++){ //后綴長度為j a(bcd)(bcd)
//內(nèi)循環(huán)檢查 flag為equal
//外循環(huán)檢查 flag為 ok
int equal=1;
for(int k=0;k<j;k++) if(S[cur-k]!=S[cur-k-j]) {equal=0;break;}
if(equal) {ok=0;break;}
}
if(ok) if(!dfs(cur+1)) return 0;
}
return 1;
}
int main(){
while(cin>>n>>L && (n!=0 && L!=0)){
cnt=0;
dfs(0);
}
return 0;
}
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)站名稱:【Uva129】KryptonFactor(困難的串)-創(chuàng)新互聯(lián)
鏈接URL:http://muchs.cn/article12/pgggc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、手機(jī)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)公司、外貿(mào)建站、動態(tài)網(wǎng)站、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容