牛客 發郵件

2021-10-01 16:23:05 字數 865 閱讀 6425

題目傳送門:點我

nowcoder每天要給很多人發郵件。有一天他發現發錯了郵件,把發給a的郵件發給了b,把發給b的郵件發給了a。於是他就思考,要給n個人發郵件,在每個人僅收到1封郵件的情況下,有多少種情況是所有人都收到了錯誤的郵件?

即沒有人收到屬於自己的郵件。

結合我們的做題步驟:

1).定義乙個能夠清楚描述最優子問題的陣列(明確陣列描述的含義)。

2).找出陣列元素之間的關係式(狀態轉移方程)

3).找出初始值

code:

這道題的狀態轉移方程還是不容易找出的(南首- - )。

a  b c ... n (郵件)

a  b  c ... n(郵箱)

假設a放入b

1)如果 b放入a 那麼剩下n-1個的郵件或郵箱和abab都沒有了關係記為dp[i] = dp[i-2]

2)如果b沒有放入a 那有如下狀態:

b c ... n (郵件)

a  c ... n(郵箱)

dp[i] = dp[i-1]

綜合1)2)並且,還有其他情況 a裝入c,裝入i的i-1種錯誤之下,同樣都有dp[i-1]+dp[i-2]種錯裝法,因此

dp[i] = (i-1) * (dp[i-1] + dp[i-2])

public class ltdp 

}private static long errnum(int num)

for(int i = 3 ;i <= num;i++)

return dp[num];

}}

牛客題解 發郵件錯排問題

nowcoder每天要給很多人發郵件。有一天他發現發錯了郵件,把發給a的郵件發給了b,把發給b的郵件發給了a。於是他就思考,要給n個人發郵件,在每個人僅收到1封郵件的情況下,有多少種情況是所有人都收到了錯誤的郵件?即沒有人收到屬於自己的郵件。他給的測試用例和輸入輸出描述是這樣的 n個郵件放入n個郵箱...

python 發郵件 python發郵件

python提供smtplib模組,該模組定義了乙個smtp客戶端會話物件,可用於使用smtp或esmtp偵聽器守護程式向任何網際網路機器傳送郵件。這是乙個簡單的語法,用來建立乙個smtp物件,稍後將演示如何用它來傳送電子郵件 import smtplib smtpobj smtplib.smtp ...

發郵件原理

發 郵件原理 一 郵件伺服器和電子郵箱 郵件伺服器 要在internet 上提供電子郵件功能,必須有專門的電子郵件伺服器。例如現在 internet 很多提供郵件服務的廠商 sina sohu 163 等等他們都有自己的郵件伺服器。這些伺服器類似於現實生活中的郵局,它主要負責接收使用者投遞過來的郵件...