雙「11」的抉擇

2022-02-18 02:22:09 字數 1072 閱讀 3975

題目描述

把錢花完了,所以單身了,單身了所以過雙「11」,過雙「11」所以把錢花完了。

今年nova君(三號)照舊過著他暗無天日的「買買買」的雙「11」,然而因為囊中羞澀,並不能夠太任性。他的購物車中,列滿了數不清的商品,共有n件,好多商品居然還不止一件 __(:3 」∠)_ 現在nova君要做出乙個艱難的抉擇,他要從所有商品中挑出m件拼成乙個訂單,請問有多少種湊單的方法呢?求訪法數對m的餘數。

ps:同一種商品不作區分。

輸入多組測試資料(不超過100組)

每組資料兩行,第一行為三個正整數n,m,m,具體意義詳見描述,第二行為n個正整數a1,a2,,,an,代表第i個商品的個數

(1<=n,ai,m<=1000,2<=m<=10000)

輸出對於每組資料,輸出一行,表示方法總數

輸入樣例

3 3 10000

1 2 3

輸出樣例
6
解題思路:
1、為了拉不重複計算,最好是同一種物品一次性解決掉,所以定義如下:

dp[i+1][j] : 從前 i+1 種物品中取出 j 個的方案總數

2、狀態轉移方程:

前 i+1 種物品取出 j 個 = 前 i+1 種物品取出 j-1個 + 前 i 種物品取出 j 個 - 前i種物品中取出 j-1-ai 個.

因為取出 j-1-ai個, 最後需要 j-1個, 則 ai 需要全部取出, 前兩個相重複, 則必然全部取出.

遞推公式: dp[ i+1 ][ j ] = dp[ i+1 ][ j-1 ] + dp[ i ][ j ] - dp[ i ][ j-1-ai ]     時間複雜度o(nm).

呈上**:

#include using

namespace

std;

const

int n=1010

;int

a[n];

intb[n][n];

intmain()

printf(

"%d\n

",b[n][m]);

}}

高考的抉擇

恰逢高考剛剛結束,作為03年參加高考的老者,也來回憶下自己高考的那點事情.作為一位浙江人,考浙大應該不算太難得事情.在高考前的幾次模擬考,當時我的成績總分一直很穩定,但是排名一直波動很大,試題難了,我名次前進點,試題簡單了,我名次就後退了.離高考前的兩周,最後一次模擬考,我的成績還是600分左右,可...

艱難的抉擇

今年三月份,我帶領開發的績效團隊終不免要到交付去,雖然是乙個妥協的結果 團隊中除了我之外所有的成員都過去了。過去的半年裡,銀行績效系統傾注了我所有的心血,此時雖有不捨之情,但卻為無奈的選擇,當然同時我希望並相信一塊去的團隊能夠很好地從我手中接替過去,願績效 專案 一路走好!我總結了一下,績效團隊會有...

內心的抉擇

2018對於我來說注定是乙個不凡的一年。2018年寒冷的一月裡,我的手裡既沒有學校offer,也沒有校招offer,手頭上正在做的sap實習也即將結束,內心沒有恐慌,倒是有一些困惑。我一邊開始找下乙份工作,一邊思考自己過去的2017年到底在折騰些什麼。2017年,我放棄了保研,結了兩個資料探勘相關水...