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;
}
相关推荐
黄金龙PLUS3 小时前
Xoodoo置换算法的优缺点
算法·网络安全·密码学·哈希算法·同态加密
LayZhangStrive3 小时前
数据结构与算法 - 堆排序
java·数据结构·算法·排序算法·堆排序·大根堆
residual_fan4 小时前
深度渐进收缩学习(DPSL):面向强噪声与类内分散的机械复合故障诊断方法
人工智能·算法·数据挖掘·数据分析
a187927218315 小时前
【算法】动态规划第五篇:区间 DP——从“看什么都像背包“到“最后戳谁“
算法·leetcode·动态规划·dp·区间·区间dp·算法讲解
whitelbwwww5 小时前
c++ 多线程
开发语言·c++·算法
额鹅恶饿呃5 小时前
随着CentOS官方停服的时间越来越久,大量仍在使用CentOS7的企业和运维从业者
java·python·算法·c#·ruby
白狐_7985 小时前
408 数据结构|KMP算法核心:为什么不用主串回退
数据结构·算法
wuyk5555 小时前
13.堆排序:基于完全二叉树的高效排序算法一、什么是堆排序?
开发语言·算法·排序算法
qinzechen5 小时前
本周科技行业热点汇总·2026第36周(2026年8月31日-9月6日)
c++·科技·算法
白狐_7985 小时前
408 数据结构|红黑树 vs AVL:高频考点、易错判断与可能出题方式
数据结构·算法