UVa1262 Password 暴力列舉

2021-07-02 06:06:52 字數 863 閱讀 5492

題意:

給出兩個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 如果控制了乙個塊,那麼這個塊後面所有的塊都能被控制 為了控制所有塊,一定要賄賂沒有入度的塊,因為它不能被其它塊控制到 ...