zoukankan      html  css  js  c++  java
  • [HIHO]DIvide Product

    Divided Product

    题解

     1 #include <iostream>
     2 
     3 using namespace std;
     4 //  f[0][0][1] = 1;
     5 // for (i = 0; i < N; i++)
     6 //     for (j = 0; j < N; j++)
     7 //         for (k = 1; k <= M; k++)
     8 //             if (f[i][j][k] > 0)
     9 //                 for (l = j + 1; l <= N - i; l++)
    10 //                     f[i + l][l][gcd[l * k]] = (f[i + l][l][gcd[l * k]] + f[i][j][k]) % 1000000007;
    11 // k = 0;
    12 // for (i = 1; i <= N; i++)
    13 //     k = (k + f[N][i]     [M]) % 1000000007;
    14 int N, M;
    15 int cnt;
    16 int gcd(int a,int b)
    17 {
    18      return b==0?a:gcd(b,a%b);
    19 }
    20 int main()
    21 {
    22     cin >> N >> M;
    23     cnt = 0;
    24     int f[N+1][N+1][M+1];
    25     for (int i =0;i<=N;++i)
    26         for (int j =0;j<=N;++j)
    27             for(int k =0;k<=M;++k)
    28                 f[i][j][k] = 0;
    29     f[0][0][1] = 1;
    30     for(int i =0;i<=N;++i)
    31         for(int j=0;j<=N;++j)
    32             for(int k =0;k<=M;++k)
    33                 if(f[i][j][k]>0)
    34                     for(int l=j+1;l<=N-i;++l)
    35                         f[i+l][l][gcd(l*k,M)] = (f[i][j][k] + f[i+l][l][gcd(l*k,M)]) % 1000000007;
    36 
    37     int k = 0;
    38     for(int i=0;i<=N;++i){
    39         k = (k + f[N][i][M]) % 1000000007;
    40         //    cout << f[N][i][M] <<endl;
    41     }
    42        cout << k << endl;
    43     return 0;
    44 }
  • 相关阅读:
    歌词:青春
    转载:只输了五元钱
    极静之渊

    低学翁
    心灵死化,何时巨变?
    无题

    意念
    爱之切
  • 原文地址:https://www.cnblogs.com/shenbingyu/p/4937279.html
Copyright © 2011-2022 走看看