zoukankan      html  css  js  c++  java
  • hdu 4301 Divide Chocolate 夜

    给一个2*n 的chocolate 分成一定的块数 问有多少种情况

    DP 递推

    link[][]表示 到第 i 排 第i排相连 分成 j 块有多少种情况

    nolink[][]表示 到第 i 排 第i排不相连 分成j块有多少种情况

    代码:

    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    #include<queue>
    #include<cmath>
    #include<stack>
    #include<algorithm>
    
    using namespace std;
    
    const int N=1001;
    const int MOD=100000007;
    
    int link[N][N*2];
    int nolink[N][N*2];
    void begin()
    {
        link[1][2]=0;
        nolink[1][2]=1;
        for(int j=3;j<N*2-1;++j)//一些边界处理
        {
            link[1][j]=0;
            nolink[1][j]=0;
        }
        for(int i=1;i<N;++i)//一些边界处理
        {
            nolink[i][2*N-1]=0;
            link[i][0]=0;
            nolink[i][0]=0;
            link[i][1]=1;
            nolink[i][1]=0;
        }
        for(int i=2;i<N;++i)
        {
            for(int j=2;j<2*N-1;++j)
            {
                link[i][j]=(link[i-1][j]+link[i-1][j-1]+nolink[i-1][j-1]+nolink[i-1][j]*2)%MOD;
                nolink[i][j]=(link[i-1][j-1]*2+link[i-1][j-2]+nolink[i-1][j]+nolink[i-1][j-1]*2+nolink[i-1][j-2])%MOD;
            }
        }
    }
    int main()
    {
       int T;
       scanf("%d",&T);
       begin();
       while(T--)
       {
           int x,y;
           scanf("%d %d",&x,&y);
           printf("%d\n",(link[x][y]+nolink[x][y])%MOD);
       }
       return 0;
    }
    

      

  • 相关阅读:
    算法竞赛入门经典训练指南——UVA 11300 preading the Wealth
    hiho一下 第148周
    ajax总结及案例
    Spring事务
    Struts2拦截器介绍
    Struts2的拦截器----Dog实例
    Struts2文件的下载
    Struts2文件的上传
    Struts2类型转换
    Struts2 属性驱动、模型驱动、异常机制
  • 原文地址:https://www.cnblogs.com/liulangye/p/2602300.html
Copyright © 2011-2022 走看看