總共有 n 個人和 40 種不同的帽子,帽子編號從 1 到 40 。
給你乙個整數列表的列表 hats ,其中 hats[i] 是第 i 個人所有喜歡帽子的列表。
請你給每個人安排一頂他喜歡的帽子,確保每個人戴的帽子跟別人都不一樣,並返回方案數。
由於答案可能很大,請返回它對 10^9 + 7 取餘後的結果。
示例 1:
輸入:hats = [[3,4],[4,5],[5]]
輸出:1
解釋:給定條件下只有一種方法選擇帽子。
第乙個人選擇帽子 3,第二個人選擇帽子 4,最後乙個人選擇帽子 5。
示例 2:
輸入:hats = [[3,5,1],[3,5]]
輸出:4
解釋:總共有 4 種安排帽子的方法:
(3,5),(5,3),(1,3) 和 (1,5)
示例 3:
輸入:hats = [[1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3,4]]
輸出:24
解釋:每個人都可以從編號為 1 到 4 的帽子中選。
(1,2,3,4) 4 個帽子的排列方案數為 24 。
示例 4:
輸入:hats = [[1,2,3],[2,3,5,6],[1,3,7,9],[1,8,9],[2,5,7]]
輸出:111
n == hats.length
1 <= n <= 10
1 <= hats[i].length <= 40
1 <= hats[i][j] <= 40
hats[i] 包含乙個數字互不相同的整數列表。
class
solution
// 已經被使用了的帽子。不能再給接下來的人用
set<
int> used;
// [0, i) 這些人都已經有了帽子。返回值是給接下來的人選帽子的方案數。
intdfs
(int i)
int cnt =0;
// 給第 i 個人選一頂帽子,不能選已經被用了的帽子。
for(
int hat : hats[i])}
return cnt;}}
;//leetcode-cn.com/problems/number-of-ways-to-wear-different-hats-to-each-other/solution/zhuang-tai-ya-suo-dp-ru-men-by-qodjf/
這樣會超時,但是思想要學習 每個人心中
我們這個單位,因為行業的關係,職工幾乎全是男的,全部的女職工加起來不過10個左右。以前我們部門有個年輕男同事在的時候老為這發愁,說單位就像和尚廟,找個物件都難,所以後來他辭職走了,哈哈,當然,並不是為這個原因辭職的。中午,在食堂吃飯。同事拉拉我胳膊,快看。我看向她示意的方向,乙個姑娘坐在一張餐桌旁吃...
每個人都是周星馳
記得幾年前有一首網路歌曲 就算我是周星馳 寫得不算差,卻沒有火起來。想想借周星馳之名的人很多,說明 還是有很多人認可周星馳的。今天在卓越上閒逛居然看到了潘愛民領銜的一本新書叫做 程式設計師的自我修養 看到書名我就笑了出來 看過 喜劇之王 的朋友是否還記得尹天仇看的那本 演員的自我修養 潘老師的這本書...
主動久了,每個人都會累
如果有乙個女生或男生,放下自己的身段,主動聯絡你。給你打 給你發簡訊。一次,兩次,三次 如果有乙個女生或男生,放下所謂的尊嚴,有事沒事都聯絡你。總想知道你在幹什麼,一天,兩天,三天 或者好久,你覺得她他很廉價,或許,你根本不在乎。甚至,你以為一切都是理所當然的。你以為自己是高傲的,別人聯絡你是應該的...