題意:
給出兩個6行5列的字母矩陣,乙個密碼滿足:密碼的第i個字母在兩個字母矩陣的第i列均出現。
然後找出字典序為k的密碼,如果不存在輸出no
分析:我們先統計分別在每一列均在兩個矩陣出現的字母,然後從小到大排好序。
對於第乙個樣例來說,我們得到acdw、bop、gmox、ap、gsu
則一共有4×3×4×2×3=288種密碼,我們先計算這個數列的字尾積:288、72、24、6、3、1
要確定第乙個字母,如果1≤k≤72,則是a;如果73≤k≤144,則是c,以此類推。
確定第二個字母是類似的,用k%72+1與24去比較。
**實現中,字典序是從0開始的。
解法二:
因為密碼最多有65 = 7776種,所以可以按字典序從小到大列舉。
思維難度小,寫起來更快更對。
#include#includeusing namespace std;
int k,cnt;
char g[2][6][5],ans[6];
bool dfs(int col)
return false;
}bool vis[2][26];
memset(vis,false,sizeof(vis));
for(int i=0;i<2;i++)
for(int j=0;j<6;j++)
vis[i][g[i][j][col]-'a']=1;
for(int i=0;i<26;i++)
if(vis[0][i]&&vis[1][i])
return false;
}int main()
return 0;
}
數學 解碼問題 UVA1262 PassWord
題意 給定兩表 6行5列 只有同列中同時存在的的字母才可作為密碼,現在要求求解按字典序排序第n個密碼。解題思路 先找出可作為密碼的字母,其個數分別為a,b,c,d,e,並計算總的種類數。第乙個字母若為a,則n應小於b c d e 若為b,則n應大於b c d e小於2 b c d e 由此可以推出餘...
UVa 1262 第k字典序 Password
題意 給出兩個6行5列的字母矩陣,乙個密碼滿足 密碼的第i個字母在兩個字母矩陣的第i列均出現。然後找出字典序為k的密碼,如果不存在輸出no 分析 我們先統計分別在每一列均在兩個矩陣出現的字母,然後從小到大排好序。對於第乙個樣例來說,我們得到acdw bop gmox ap gsu 則一共有4 3 4...
P1262 間諜網路
傳送門 顯然可以把所有間諜的關係建乙個圖 如果a間諜手中掌握著關於b間諜的犯罪證據,那就從a連一條邊到b 如果賄賂了乙個間諜,那麼整個聯通塊的間諜肯定都被控制 那就先把圖縮成dag 如果控制了乙個塊,那麼這個塊後面所有的塊都能被控制 為了控制所有塊,一定要賄賂沒有入度的塊,因為它不能被其它塊控制到 ...