noip2006普及第3題.
jam是個喜歡標新立異的科學怪人。他不使用阿拉伯數字計數,而是使用小寫英文本母計數,他覺得這樣做,會使世界更加豐富多彩。在他的計數法中,每個數字的位數都是相同的(使用相同個數的字母),英文本母按原先的順序,排在前面的字母小於排在它後面的字母。我們把這樣的「數字」稱為jam數字。在jam數字中,每個字母互不相同,而且從左到右是嚴格遞增的。每次,jam還指定使用字母的範圍,例如,從2到10,表示只能使用這些字母。如果再規定位數為5,那麼,緊接在jam數字「bdfij」之後的數字應該是「bdghi」。(如果我們用u、v依次表示jam數字「bdfij」與「bdghi」,則u輸入有2行,第1行為3個正整數,用乙個空格隔開:
s t w
(其中s為所使用的最小的字母的序號,t為所使用的最大的字母的序號。w為數字的位數,這3個數滿足:1≤s所給的資料都是正確的,不必驗證。
輸出最多為5行,為緊接在輸入的jam數字後面的5個jam數字,如果後面沒有那麼多jam數字,那麼有幾個就輸出幾個。每行只輸出乙個jam數字,是由w個小寫字母組成的字串,不要有多餘的空格。
2 10 5bdfij
bdghibdghj
bdgij
bdhij
befgh
各個測試點1s
演算法描述:這道題目其實本意上是乙個模擬的思想,把每一種都模擬一下,並沒有多大的難度,話不多說,看**.
**:#includeint main()
{ int s,t,i=0,w,j,k;
char arr[256];
scanf("%d%d%d",&s,&t,&w);
scanf("%s",arr);
for (i=0;i<5;i++)
{ for (j=w-1;j>=0;j--)
{ if (arr[j]+1<=('a'+(t-(w-j))))
{ arr[j]+=1;
for (k=j+1;k筆者水平有限,如有錯誤請指出
Jam的計數法
題目描述 jam是個喜歡標新立異的科學怪人。他不使用阿拉伯數字計數,而是使用小寫英文本母計數,他覺得這樣做,會使世界更加豐富多彩。在他的計數法中,每個數字的位數都是相同的 使用相同個數的字母 英文本母按原先的順序,排在前面的字母小於排在它後面的字母。我們把這樣的 數字 稱為 jam數字。在 jam數...
Jam的計數法
jam是個喜歡標新立異的科學怪人。他不使用阿拉伯數字計數,而是使用小 寫英文本母計數,他覺得這樣做,會使世界更加豐富多彩。在他的計數法中,每個數字的位數都是相同的 使用相同個數的字母 英文本母按原先的順序,排在前 面的字母小於排在它後面的字母。我們把這樣的 數字 稱為jam數字。在jam數字中,每個...
JAM的計數法
經典的題目了,自己想了個新方法 方法 先從低位往高位找到乙個可以加的位數,然後把後面的數變為前面那個數加1 建議先從主程式開始看。本人蒟蒻,不好請原諒 方法 先從低位往高位找到乙個可以加的位數,然後把後面的數變為前面那個數加1 建議先從主程式開始看。include include include u...