波動數列 藍橋真題

2021-09-20 21:40:41 字數 528 閱讀 1789

我哭了 模數居然是1e8+7。。。。。。也好 長個記性

第i第(i+1)個數之間的差記為di di對整個序列和的貢獻是di*(n-i) 先假設首項為0 看怎麼用這(n-1)個相鄰差組成的數湊出s%n 因為相鄰兩項差確定之後 只剩首項不確定 首項e1對序列和的貢獻是e1*n 所以只要保證s減去相鄰差組成的數是n的倍數即可

然後每兩個相鄰位置都提供ai*(n-i) -1*bi*(n-i)這兩種物品 容量為n 按揹包處理一下即可 

#include using namespace std;

typedef long long ll;

const ll mod=1e8+7;

const int maxn=1e3+10;

ll dp[2][maxn];

ll s,n,a,b,m;

int main()

for(j=0;j}

printf("%lld\n",dp[(n-1)%2][m]);

return 0;

}

波動數列 藍橋杯

這是2014年第五屆藍橋杯全國軟體大賽預賽本科a組 c c 組 第10題,也就是最後一題。思路可以想得到,列舉和廣度優先搜尋,由於最後時間緊迫,簡單的計數還沒完成,謹以此文祭奠逝去的藍橋杯。剛看這題,似乎摸不著頭腦,細細欣賞,似乎還可以實現。由於資料量可能很大,這裡使用了long long型別。輸入...

藍橋杯 波動數列

問題描述 觀察這個數列 1 3 0 2 1 1 2 這個數列中後一項總是比前一項增加2或者減少3。棟棟對這種數列很好奇,他想知道長度為 n 和為 s 而且後一項總是比前一項增加a或者減少b的整數數列可能有多少種呢?輸入格式 輸入的第一行包含四個整數 n s a b,含義如前面說述。輸出格式 輸出一行...

波動數列 藍橋杯

資料格式 輸入的第一行包含四個整數 n s a b,含義如前面說述。輸出一行,包含乙個整數,表示滿足條件的方案數。由於這個數很大,請輸出方案數除以100000007的餘數。例如,輸入 4 10 2 3 程式應該輸出 2 樣例說明 這兩個數列分別是2 4 1 3和7 4 1 2。資料規模與約定 對於1...