hihocoder 1882 : 播放列表 (DP 或 容斥)

#1882 : 播放列表

时间限制:10000ms

单点时限:1000ms

内存限制:256MB

描述

小Hi的手机中存着N首他喜爱的歌曲。现在小Hi希望制作一个长度为L的播放列表,满足

1. 每一首歌至少播放一编

2. 同一首歌不能连续播放,之间至少间隔一首其他歌曲

请你计算一共有多少种不同的播放列表满足条件?由于结果可能非常大,你只需要输出结果模1000000009的余数。

输入

两个整数N和L。

对于30%的数据,1 ≤ N ≤ 5,N ≤ L ≤ 10  

对于100%的数据,1 ≤ N ≤ 1000, N ≤ L ≤ 2000

输出

一个整数,代表答案。

样例输入

3 4

样例输出

18

dp[i][j]代表着 

 hihocoder 1882 : 播放列表 (DP 或 容斥)_第1张图片

hihocoder 1882 : 播放列表 (DP 或 容斥)_第2张图片

 

 

#include
using namespace std;
long long mod=1000000009;
int n,l;
long long dp[2005][2005];
int main()
{
    cin>>n>>l;
    memset(dp,0,sizeof(dp));
    dp[1][1]=n;//播放列表为i,有j首歌曲的数量  开始有n种选择
    for(int i=1; i

 

你可能感兴趣的:(基础DP)