數學 解碼問題 UVA1262 PassWord

2021-08-15 20:54:33 字數 875 閱讀 9521

題意:

給定兩表(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;

由此可以推出餘下的四個字母。

坑點:我做題的時候完完全全沒注意到重複性,若同列中有兩個c,那麼可選密碼的個數不應為2,而是1.

所以應該去重,我一開始用vector再排序就完全沒注意到這個問題。所以使用set就能解決問題。

**:

#include #include #include #include #define siz(x) (int)x.size()

using namespace std;

int t, k;

char s1[7][7];

char s2[7][7];

setg[7];

set::iterator it;

inline bool check(int ch,int col)

return 0;

}int sum[7];

int main()

}int cur = 0;

sum[5] = 1;

for (int i = 4; i >= 0; --i)

if (k > sum[0])

for (int i = 0; i < 5; ++i)

else break;

}putchar(*it);

}putchar('\n');

}return 0;

}

1 UVA624(記錄路徑問題)

1 uva624 記錄路徑問題 總得來說,不管是01揹包還是完全揹包,其動態轉移每次只有兩種狀態在轉移,就說這道題目,dp i j max dp i 1 j dp i 1 j v i val i 對於dp i j 來說,它只能使由兩個狀態中的乙個轉移過來的,要麼取一件,要麼不取,那麼我們再開乙個二維...

ACM選修課1 數學問題

memset 函式 memset 陣列名,1 0 1,sizeof a 重置為1是陣列為任意正數 求乙個數的位數 int log10 n 1,公式log10 i i 必須為double型別 the hardest problem ever include using namespace std in...

數學問題 1000瓶酒找1毒酒

題目 某酒主人要宴請客人,他共有1000瓶酒,其中1瓶有毒。一旦喝了毒酒後,會在一周後發作,現在如果我們用試紙進行檢測,滴了毒酒 的試紙會在1週後變色,問最少需要多少張試紙可以檢測出哪瓶有毒?解答 10張試紙即可。10張試紙按從左到右的順序一字排好,每瓶酒也編上號1到1000,並把編號轉換成10位二...