void createint n int ij; dp0 = 1; for i=1;in;i++位数 for j=ii+12;j=i;j--滚动数组从后到前更新j=i的部分 dpj = dpj-i+dpjMOD;表示当numa=i的时候n位数列+a的组合数目int main long int nsabijtempxnum=0; sc
蓝桥杯波动数列是一道数学题,题目描述如下:
给定正整数 $n$,$a$,$b$,$s$,定义长度为 $n$ 的“波动数列”为:第 $i$ 个数为 $a$ 或 $b$,相邻两数之差的绝对值恰好为 $1$。求满足其和为 $s$ 的波动数列的个数。
例如,当 $n=4$,$a=1$,$b=2$,$s=4$ 时,符合条件的波动数列有 $2$ 个,分别为 $1,2,1,2$ 和 $2,1,2,1$。
题目解法涉及到组合数学和动态规划,具体解法可以参考以下链接:
- 蓝桥杯历届真题题解:波动数列
- 蓝桥杯历届真题详解:波动数列
原文地址: https://www.cveoy.top/t/topic/5hy 著作权归作者所有。请勿转载和采集!