コンビネーションカウント牛と雌牛------

ジョンは展示会での集会に出席するためにNNの牛を取るために、これらの牛は牛することができ、牛をすることができます。
牛は、行に立ってする必要がありますが、牛が攻撃的である、牛のトラブル行く間違っを避けるために、ジョンは、任意の2頭の牛との間に少なくともKKのみ雌牛をすることにしました。
いくつかの方法にキューイングの合計を計算し、すべての牛は、同じように、すべて同じ牛、剰余50,000,115,000,011への回答を見ることができます。
入力形式
のライン、および入力2つの整数NN KK。
出力フォーマット
番号キューイング方法を表す整数。
データ範囲
1≤N≤1051≤N≤105、

0≦K <N0≤K<Nの
入力サンプル:
42

サンプル出力:
6

サンプルの解釈
方法の66種類がある:女性の女性の女性の女性、男性、女性、女性、女性、女性、男性、女性、女性、女性、女性、男性、女性、女性、女性、男性、女性、男性、女性、男性、女性。

思考:F [N]で表されるN、全て1、最後、および再帰的に可能な種の数、最後から二番目のすべての可能な位置に1

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 100010, mod = 5000011;
int n, k;
int f[N], s[N];
int main(){
 cin >> n >> k;
  s[0] = f[0] = 1;
 for (int i = 1; i <= n; i ++){
  f[i] = s[max(i - k - 1, 0)];
  s[i] = (s[i - 1] + f[i]) % mod;
 }
  cout << s[n] << endl;
  return 0;
}
公開された106元の記事 ウォン称賛67 ビュー5407

おすすめ

転載: blog.csdn.net/qq_45772483/article/details/105061354