牛飛盤隊(弱雞的DP自我救贖)

2021-08-21 19:25:25 字數 1031 閱讀 3872

題面:

老唐最近迷上了飛盤,約翰想和他一起玩,於是打算從他家的n頭奶牛中選出一支隊伍。每只奶牛的能力為整數,第i頭奶牛的能力為r i 。飛盤隊的隊員數量不能少於 1、大於n。一支隊伍的總能力就是所有隊員能力的總和約翰比較迷信,他的幸運數字是f,所以他要求隊伍的總能力必須是f的倍數。請幫他

算一下,符合這個要求的隊伍組合有多少?由於這個數字很大,只要輸出答案除以 10^8的餘數就可以了。

輸入格式

第一行:兩個用空格分開的整數:n和f,1 ≤ n ≤ 2000,1 ≤ f ≤ 1000

第二行到n + 1行:第i + 1行有乙個整數r i ,表示第i頭奶牛的能力,1 ≤ r i ≤ 10 5

輸出格式

 第一行:單個整數,表示方案數除以 10^810 8

的餘數

樣例 fristeam.in fristeam.out

4 5 1 2 8 2 3 (有兩種方案都是8 + 2 = 10,只是選的奶牛)

這個題目格式很sb,直接給飛機票

當然大大大大大佬們會覺得本題相當的簡單,但是我真的是乙個弱雞

……仔細想不難想

f[i][j]=(f[i][j]+f[i-1][j]+f[i-1][((j-a[i])%m+m)%m])%mod;

f[i][j]表示前i個牛飛盤隊達到j值得方案數,分別由f[i][j](當前這個牛飛盤本身能達到要求),f[i-1][j]不選用當前這個牛飛盤隊,f[i-1]((j-a[i])%m+m)%m

再預處理那些牛飛盤隊能滿足要求就ok,雖然非常簡單但我第一眼想不到……哭了

上**

#include

using namespace std;

const int n = 2010, m = 1010;

const int mod = 1e8;

int n, m;

int f[n][m], a[n];

int main()

c 弱雞執行緒池的實現

把之前做的筆記一次性挪到部落格上好嘍 這是乙個固定數量的執行緒池,執行緒任務可帶引數,非同步返回返回值,本菜雞花了一天才看明白這是怎麼回事,用到了很多c 11的特性,比如bind function future等 class threadpool template classf,class.args...

牛客假日團隊賽6 D 迷路的牛

時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld farmer john的三頭獲獎奶牛bessie elsie和mildred,總是會迷路走到農場上遙遠的地方去!他需要你幫助將她們一起趕回來。農場的草地大體是一塊狹長的...

牛客 D白兔的字串

白兔有乙個字串t。白雲有若干個字串s1,s2 sn。白兔想知道,對於白雲的每乙個字串,它有多少個子串是和t迴圈同構的。所有字元都是小寫英文本母 第一行乙個字串t t 10 6 第二行乙個正整數n n 1000 接下來n行為s1 sn s1 s2 sn 107 max s1 s2 s3 s4 sn 1...