poj 2193 Lenny's Lucky Lotto Lists

来源:互联网 发布:如果二战中国投降知乎 编辑:程序博客网 时间:2024/06/05 15:57

题目链接:http://poj.org/problem?id=2193

题目思路:转移方程:dp[i][j]=sum[i-1][j/2]; sum[i][j]=sum[i][j-1]+dp[i][j];其中dp[i][j]记录的是前i个数结尾是j的个数,而sum是小于等于j;

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<string>#include<queue>#include<algorithm>#include<vector>#include<stack>#include<list>#include<iostream>#include<map>using namespace std;#define inf 0x3f3f3f3f#define Max 110int max(int a,int b){return a>b?a:b;}int min(int a,int b){return a<b?a:b;}int t,n,m;__int64 dp[12][2010],sum[12][2010];int main(){    int i,j,k,count=1;    //dp[0][0]=1;    for(i=1;i<=10;i++)        for(j=1;j<=2000;j++)        {            if(i==1)                dp[i][j]=1;            else            dp[i][j]=sum[i-1][j/2];            sum[i][j]=sum[i][j-1]+dp[i][j];        }    scanf("%d",&t);    while(t--)    {        scanf("%d%d",&n,&m);        __int64 ans=0;        printf("Case %d: n = %d, m = %d, # lists = %I64d\n",count++,n,m,sum[n][m]);    }}


          

 

原创粉丝点击