1214. 波动数列

题目:

1214. 波动数列 - AcWing题库

思路:dp

dp=划分+递归

转自:

AcWing 1214. 波动数列(有公式详细推导) - AcWing

代码:

cpp 复制代码
#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;
const int N = 1010,MOD = 100000007;

int f[N][N]; //设f[i][j]为前i个数的总和模n余数为j的集合数
int get_mod(int a,int b) //求a除以b的正余数
{
    return (a%b+b) % b;
}

int main()
{
    int n,s,a,b;
    cin >> n >> s >> a >> b;
    f[0][0] = 1;//递归初始化
    for(int i=1; i<n; ++i){
         for(int j=0; j<n; ++j){
             f[i][j] = ( f[i-1][get_mod(j-a*(n-i),n)] + f[i-1][get_mod(j+b*(n-i),n)] ) % MOD;
         }
    }
    cout<<f[n-1][get_mod(s,n)]<<endl;
    return 0;
}
相关推荐
Beginner x_u2 分钟前
链表专题:JS 实现原理与高频算法题总结
javascript·算法·链表
_深海凉_3 小时前
LeetCode热题100-寻找两个正序数组的中位数
算法·leetcode·职场和发展
旖-旎4 小时前
深搜练习(电话号码字母组合)(3)
c++·算法·力扣·深度优先遍历
谭欣辰4 小时前
C++快速幂完整实战讲解
算法·决策树·机器学习
Mr_pyx4 小时前
【LeetHOT100】随机链表的复制——Java多解法详解
算法·深度优先
AIFarmer4 小时前
【无标题】
开发语言·c++·算法
AGV算法笔记5 小时前
CVPR 2025 最新感知算法解读:GaussianLSS 如何用 Gaussian Splatting 重构 BEV 表示?
算法·重构·自动驾驶·3d视觉·感知算法·多视角视觉
勤劳的进取家6 小时前
数据链路层基础
网络·学习·算法
Advancer-6 小时前
第二次蓝桥杯总结(上)
java·算法·职场和发展·蓝桥杯
ん贤6 小时前
加密算法(对称、非对称、哈希、签名...)
算法·哈希算法