nowcoder每天要給很多人發郵件。有一天他發現發錯了郵件,把發給a的郵件發給了b,把發給b的郵件發給了a。於是他就思考,要給n個人發郵件,在每個人僅收到1封郵件的情況下,有多少種情況是所有人都收到了錯誤的郵件?
即沒有人收到屬於自己的郵件。
他給的測試用例和輸入輸出描述是這樣的:
n個郵件放入n個郵箱,我們用d(n)表示,那麼d(n-1)的意思就是說n-1個郵件放入n-1個郵箱
前括弧 **真的好簡短 後括弧
#include
#include
using
namespace std;
intmain()
;for
(int i =
3; i <
21; i++
)int n;
while
(cin >> n)
system
("pause");
return0;
}
廣場上站著一支隊伍,她們是來自全國各地的扭秧歌代表隊,現在有她們的身高資料,請你幫忙找出身高依次遞增的子串行。 例如隊伍的身高資料是(1、7、3、5、9、4、8),其中依次遞增的子串行有(1、7),(1、3、5、9),(1、3、4、8)等,其中最長的長度為4。
咱再來看下測試用例的輸入輸出 :
我先說哈,我的**在vs上跑過了,在牛客上沒跑過,時間複雜度太大了,迴圈太多超時了,所以先放在這,等我學的好點了再來改進。
我的思路:先以第乙個數為基準,max記錄他的下標,從他往後找第乙個比他大的數,max記錄他的下標並把該數寫入陣列,一直找到結束。在進行找第二個比他大的數,max記錄下標一直到結束。這一輪結束後,在以第二個數為基準,找比他大的數,依次類推。
**:
//時間複雜度太大了,最後強調一遍
intthemaxlength
(vector<
int> a)
for(
int k = max1+
1; k < a.
size()
; k++)}
if(ret.
size()
> max)
max = ret.
size()
; ret.
clear()
;}}return max;
}
發郵件 錯排問題
3 參考 發郵件時間限制 1000 ms 記憶體限制 32768 kb 長度限制 100 kb 判斷程式 standard 來自 小小 題目描述 nowcoder每天要給很多人發郵件。有一天他發現發錯了郵件,把發給a的郵件發給了b,把發給b的郵件發給了a。於是他就思考,要給n個人發郵件,在每個人僅收...
牛客 發郵件
題目傳送門 點我 nowcoder每天要給很多人發郵件。有一天他發現發錯了郵件,把發給a的郵件發給了b,把發給b的郵件發給了a。於是他就思考,要給n個人發郵件,在每個人僅收到1封郵件的情況下,有多少種情況是所有人都收到了錯誤的郵件?即沒有人收到屬於自己的郵件。結合我們的做題步驟 1 定義乙個能夠清楚...
錯排問題解法
背景 同室四人各寫一張賀卡,先集中起來,然後每人從中拿一張別人送出的賀卡,四張賀卡的不同分配方式有多少種?問題 錯排問題 有n個正整數1,2,3,n,將這n個正整數重新排列,使其中的每乙個數都不在原來的位置上,這種排列稱為正整數1,2,3,n的錯排,問這n個正整數的排列方法有多少種?遞推公式f n ...