zoukankan      html  css  js  c++  java
  • BZOJ 2431 HAOI2009 在列的数目的顺序相反 递归

    标题效果:乞讨1~n有都布置在物种的数目相反的顺序k计划数

    订购f[i][j]对于前者i原子的反向排列的数j计划数

    因此,我们将第一i插入的数1~i-1该装置 能生产0~i-1反向对

    再就是

    f[i][j]=Σf[i-1][k] (j-i+1<=k<=j)

    维护前缀和就可以

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #define M 1010
    #define MOD 10000
    using namespace std;
    int n,k;
    int f[M][M],g[M][M];
    int main()
    {
    	int i,j;
    	cin>>n>>k;
    	f[0][0]=1;
    	for(i=0;i<=k;i++)
    		g[0][i]=1;
    	for(i=1;i<=n;i++)
    		for(j=0;j<=k;j++)
    		{
    			if(j>=i)
    				f[i][j]=(g[i-1][j]-g[i-1][j-i]+MOD)%MOD;
    			else
    				f[i][j]=g[i-1][j];
    			g[i][j]=(j?g[i][j-1]:0)+f[i][j];
    			g[i][j]%=MOD;
    		}
    	cout<<f[n][k]<<endl;
    }
    


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

  • 相关阅读:
    hdu3487 Play with Chain
    poj3481
    [HNOI2002]营业额统计
    poj3468 A Simple Problem with Integers
    [NOI2004]郁闷的出纳员
    UVa1308 LA2572
    20130620
    poj3580
    20130618
    C++类模版学习笔记
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4755584.html
Copyright © 2011-2022 走看看