zoukankan      html  css  js  c++  java
  • CodeForces 414B

    给你长度为 的整数数列b1, b2, ..., bl(1 ≤ b1 ≤ b2 ≤ ... ≤ bl ≤ n)

    如果这个数列被称为好的,那么每个元素都可以整除下一个元素

    给你n和k,去找到长度为k的好数列的个数

    dp[任意i][1] = 1;

    dp[i的倍数][长度k] = sum( dp[i][长度k-1] + 1 );

     1 #include <iostream>
     2 #include <cstdio>
     3 using namespace std;
     4 const int MOD = 1000000007 ;
     5 int n,k;
     6 long long dp[2005][2005]={0};
     7 int main()
     8 {
     9     scanf("%d%d",&n,&k);
    10     for(int i = 1;i <= n; i++)
    11     {
    12         dp[i][1] = 1;
    13         for(int j = i;j<=n; j+= i)
    14         {
    15             for(int v = 2 ;v<=k;v++)
    16             {
    17                 dp[j][v] +=dp[i][v-1];
    18                 if(dp[j][v]>=MOD) dp[j][v] -= MOD;
    19             }
    20         }
    21     }
    22     long long sum=0;
    23     for(int i = 1;i <= n ; i++)
    24     {
    25         sum += dp[i][k];
    26         if(sum>MOD) sum -= MOD;
    27     }
    28     printf("%I64d
    ",sum);
    29 }
    我自倾杯,君且随意
  • 相关阅读:
    欠采样和过采样
    分类模型之K近邻算法
    机器学习之分类模型
    。。。
    等人
    习惯
    六月一日
    回首
    你还年轻他们老了
    C#和JavaScript交互(asp.net前台和后台互调)总结 (转)
  • 原文地址:https://www.cnblogs.com/nicetomeetu/p/5701573.html
Copyright © 2011-2022 走看看