本題思路比較簡單,由於要求字典序最小,因此從第乙個位置開始,每次從a開始試錯,如果可以滿足,則進行下一位。
我使用了int
型別進行儲存,事實證明比標準ac麻煩了。雖然很多時候字串要轉換為int
型別便於處理,但這裡不需要,直接把每行當成乙個字串就夠了。
類似於ac標準答案,我們可以定義乙個template
型別,使得任意型別都可進行類似字典比較。
個人**:
#include
#include
using
namespace
std;
int n;
int alphabets[11][11];
int dir[4][2] = ; /* up down left right */
/* return 0 means ok, else indicats the dirction */
int check(int row, int col)
}return0;}
void init()
return;
}void read_data()
else
}}void print()
cout
<< endl;
}}int procss(int row, int col)
/* look for next position */
if (col == n)
procss(row + 1, 1);
else
procss(row, col + 1);
}int main()
return
0;}
歡迎關注我的個人部落格。 1 2 字典序問題
問題描述 在資料加密和資料壓縮中常需要對特殊的字串進行編碼。給定的字母表 a 由 26 個小 寫英文本母組成 a 該字母表產生的公升序字串是指字串中字母按照從左到 右出現的次序與字母在字母表 現的次序相同,且每個字元最多出現 1 次。例如,a,b,ab,bc,xyz 等字串都是公升序字串。現在對字母...
演算法筆記 01 字典序問題
問題描述 在資料加密和資料壓縮中常需要對特殊的字串進行編碼。給定的字母表a由26 個小寫英文本母組成a 該字母表產生的公升序字串是指字串中字母按照從左到右出現的次序與字母在字母表中出現的次序相同,且每個字元最多出現1次。例如,a,b,ab,bc,xyz 等字串都是公升序字串。現在對字母表a 產生的所...
JZOJ 5445 字典序 題解
description 你需要構造乙個1 n的排列,使得它滿足m個條件,每個條件形如 ai,bi 表示ai必須在bi前面。在此基礎上,你需要使它的字典序最小。input 第一行兩個正整數n,m。接下來m行每行兩個數ai,bi。output 輸出一行n個整數表示答案。如果不存在這樣的排列,輸出 1。s...