JAM計數法 藍橋杯

2021-09-02 22:53:55 字數 1273 閱讀 7960

解析

時間限制: 1 sec 記憶體限制: 256 mb

jam是個喜歡標新立異的科學怪人。他不使用阿拉伯數字計數,而是使用小寫英文本母計數,他覺得這樣做,會使世界更加豐富多彩。在他的計數法中,每個數字的位數都是相同的(使用相同個數的字母),英文本母按原先的順序,排在前面的字母小於排在它後面的字母。我們把這樣的「數字」稱為jam數字。在jam數字中,每個字母互不相同,而且從左到右是嚴格遞增的。每次,jam還指定使用字母的範圍,例如,從2到10,表示只能使用這些字母。如果再規定位數為5,那麼,緊接在jam數字「bdfij」之後的數字應該是「bdghi」。(如果我們用u、v依次表示jam數字「bdfij」與「bdghi」,則u,且不存在jam數字p,使u)。你的任務是:對於從檔案讀入的乙個jam數字,按順序輸出緊接在後面的5個jam數字,如果後面沒有那麼多jam數字,那麼有幾個就輸出幾個。

有2行,第1行為3個正整數,用乙個空格隔開:s,t,w(其中s為所使用的最小的字母的序號,t為所使用的最大的字母的序號。w為數字的位數,這3個數滿足:1≤s最多為5行,為緊接在輸入的jam數字後面的5個jam數字,如果後面沒有那麼多jam數字,那麼有幾個就輸出幾個。每行只輸出乙個jam數字,是由w個小寫字母組成的字串,不要有多餘的空格。

樣例資料

2 10 5

bdfij​

bdghi

bdghj

bdgij

bdhij

befgh

藍橋杯異常鬼畜的題目?看不懂題是個大問題,總結來講就是這個意思:

1.如果可以,每次都給最後一位字母+1.

2.如果最後一位字母不能+1,也就是到了最高位,如例子給的j,那就往前找一位+1.

3.前面的數不能大於等於後一位的數即ij不能變成jj.

4.為了使這個數最小,當我們找到一位可以+1的字母,將它後面的所有都依次遞增.即設bdfij,令f+1,於是變為bdgij,再令該位後的所有字母與它遞增,變為bdghi

#include

#include

#include

#include

#include

#include

#include

#include

#ifndef null

#define null 0

#endif

using

namespace std;

intmain()

}return0;

}

藍橋杯 ALGO 32 演算法訓練 JAM計數法

演算法訓練 jam計數法 時間限制 1.0s 記憶體限制 256.0mb 問題描述 jam是個喜歡標新立異的科學怪人。他不使用阿拉伯數字計數,而是使用小寫英文本母計數,他覺得這樣做,會使世界更加豐富多彩。在他的計數法中,每個數字的位數都是相同的 使用相同個數的字母 英文本母按原先的順序,排在前面的字...

Jam的計數法

題目描述 jam是個喜歡標新立異的科學怪人。他不使用阿拉伯數字計數,而是使用小寫英文本母計數,他覺得這樣做,會使世界更加豐富多彩。在他的計數法中,每個數字的位數都是相同的 使用相同個數的字母 英文本母按原先的順序,排在前面的字母小於排在它後面的字母。我們把這樣的 數字 稱為 jam數字。在 jam數...

Jam的計數法

jam是個喜歡標新立異的科學怪人。他不使用阿拉伯數字計數,而是使用小 寫英文本母計數,他覺得這樣做,會使世界更加豐富多彩。在他的計數法中,每個數字的位數都是相同的 使用相同個數的字母 英文本母按原先的順序,排在前 面的字母小於排在它後面的字母。我們把這樣的 數字 稱為jam數字。在jam數字中,每個...