湘潭大學程式設計實踐 1194

2021-06-27 21:53:35 字數 823 閱讀 1342

題目描述

快遞小哥每天都辛苦的送快遞,今天他需要送n份快遞給n個收件人,第i份快遞需要送給第i個收件人。 請問其中發生恰好k個送錯了的情況數是多少?

輸入存在多樣例。 每行輸入兩個整數n和k,1≤n≤1000,0≤k≤n。 如果兩個都為0,則表示輸入結束,這個樣例不需要處理。

輸出每行輸出乙個樣例的結果,因為數值會比較大,所有結果需要對109+7取模。

樣例輸入

1 1

2 13 2

1000 1000

0 0

樣例輸出
003

37043040

這個題目其實就是三個點要注意:
1.錯排遞推公式:d[i] = (i-1)*(d[i-1] + d[i-2]) (i > 2) d[1] = 0, d[2] = 1;(公式詳解找維基百科:錯排)
2.排列組合公式(楊輝三角):c[i][j] = c[i-1][j] + c[i-1][j-1] (0 < i < 1000, j < i)
c[i][0] = c[i][i] = 1 (i < 1001)
3.就是就是當k為0的時候結果為1(我就是卡在這,開始怎麼都沒有想到0個沒錯其實就是全部送對,而全部送對就只有1種情況嘛!)

#includeusing namespace std;

const int n = 1001;

const int mod = 1000000007;

#define ll long long

ll d[n], c[n][n];

int main()

湘潭大學oj1194

題目描述 快遞小哥每天都辛苦的送快遞,今天他需要送n份快遞給n個收件人,第i份快遞需要送給第i個收件人。請問其中發生恰好k個送錯了的情況數是多少?輸入存在多樣例。每行輸入兩個整數n和k,1 n 1000,0 k n。如果兩個都為0,則表示輸入結束,這個樣例不需要處理。輸出每行輸出乙個樣例的結果,因為...

湘潭大學程式設計大賽B String

題目描述 有乙個只包含大寫字母和數字的字串s,和乙個6 6的字元組成的正方形如下圖,正方形中恰好包含0 9和a z各乙個字元。正方形的一行在字串s中的出現次數是這行6個字元在s中出現次數的總和,正方形的一列在字串s中的出現次數是這列6個字元在s中出現次數的總和。如果正方形中乙個字元所在行的出現次數是...

2023年湘潭大學程式設計競賽

a 時間統計 某個實驗需要統計時間,記錄了實驗開始和結束的時間,計算實驗用了多少秒。第一行輸入乙個整數n,表示樣例個數。接下來每組樣例兩行,表示開始時間和結束時間,格式為xdayhh mm ss,x是乙個整數表示第幾天,0 x 20000,hh表示小時,mm表示分鐘,ss表示秒,保證時間合法,結束時...