zoukankan      html  css  js  c++  java
  • zoj 2402

    称号:序列,在前面的每个元件的至少两倍,最大值至n。问:长l船舶有许多这样的。

    分析:dp,LIS类别似事。

               状态:f(i,j)结束数字为j且长度为i的序列的个数。有转移方程:

               F[ i ][ j ] = Sum(F[ i-1 ][ k ]) { 2^(i-2)<= k <= j/2)。

               再用S[ i ][ j ]求出长度为i结束不超过j的串的个数就能够了。

    说明:(2011-09-19 01:33).

    #include <iostream>
    #include <cstdlib>
    #include <cstring>
    
    using namespace std;
    
    long long F[ 11 ][ 2001 ];
    long long S[ 11 ][ 2001 ];
    
    int main()
    {
        //打表 
        memset( F, 0L, sizeof( F ) );
        memset( S, 0L, sizeof( S ) );
        
        F[ 0 ][ 0 ] = 1L;
        for ( int i = 1 ; i <= 10 ; ++ i )
        for ( int j = (1<<(i-1)) ; j <= 2000 ; ++ j ) {
            for ( int k = (1<<(i-1))/2 ; k <= (j>>1) ; ++ k )
                F[ i ][ j ] += F[ i-1 ][ k ];
            S[ i ][ j ] = S[ i ][ j-1 ] + F[ i ][ j ];
        }
        //
        int t,n,m;
        while ( cin >> t )
        for ( int c = 1 ; c <= t ; ++ c ) {
            cin >> n >> m;
            cout << "Case " << c << ": n = " << n << ", m = " << m << ", # lists = " << S[ n ][ m ] << endl;
        }
        return 0;
    }

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    [BJOI2015]树的同构 && 树哈希教程
    「HNOI2014」世界树
    CF613D Kingdom and its Cities
    「HEOI2014」大工程
    虚树教程
    [SDOI2011]消耗战
    CF1216E Numerical Sequence
    vim8.1安装
    luoguP5024 保卫王国
    动态DP教程
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4753840.html
Copyright © 2011-2022 走看看