zoukankan      html  css  js  c++  java
  • hdu_2519新生晚会(DP)

    新生晚会

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 6751    Accepted Submission(s): 2388


    Problem Description
    开学了,杭电又迎来了好多新生。ACMer想为新生准备一个节目。来报名要表演节目的人很多,多达N个,但是只需要从这N个人中选M个就够了,一共有多少种选择方法?
     
    Input
    数据的第一行包括一个正整数T,接下来有T组数据,每组数据占一行。
    每组数据包含两个整数N(来报名的人数,1<=N<=30),M(节目需要的人数0<=M<=30)
     
    Output
    每组数据输出一个整数,每个输出占一行
     
    Sample Input
    5 3 2 5 3 4 4 3 6 8 0
     
    Sample Output
    3 10 1 0 1
     
    Source

    题目一看就想到了C(a,b) = C(a - 1,b) +C(a - 1,b - 1)
    一个数学问题。。。。。
    之后想到DP解决。。。。。
    上代码
    先用数学方法解决下......
    # include<iostream>
    # include<cstdio>
    using namespace std;
    int main()
    {
        int t,n,m,i;
        double sum;
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d%d",&n,&m);
            if(n<m)
            { printf("0
    ");
            continue;
            }
            sum=1;
            for(i=1;i<=m;i++)
                sum*=(n+1-i)/(double)i;//关键
            printf("%.0f
    ",sum);
        }
        return 0;
    }
    
    
    
    
    
    
    来个DP
    #include <iostream>
    using namespace std;
    int pailie[31][31];
    int main()
    {
        int T;
        cin>>T;
        for (int i=0; i<T; i++)
        {
            int N,M;
            cin>>N>>M;
            if(N<M)
                cout<<0<<endl;
            else
            {
                if(M>N/2)
                    M=N-M;
                for (int j=0; j<31; j++)
                {
                    pailie[j][0]=1;
                }
                pailie[0][1]=0;
                for (j=1; j<=N; j++)
                {
                    for (int k=0; k<=j; k++)
                    {
                        pailie[j][k]=pailie[j-1][k]+pailie[j-1][k-1];
                    }
                }
                cout<<pailie[N][M]<<endl;
            }
        }
    }
    View Code
    
    
    
  • 相关阅读:
    Ftp、Ftps与Sftp之间的区别
    Previous Workflow Versions in Nintex Workflow
    Span<T>
    .NET Core 2.0及.NET Standard 2.0 Description
    Announcing Windows Template Studio in UWP
    安装.Net Standard 2.0, Impressive
    SQL 给视图赋权限
    Visual Studio for Mac中的ASP.NET Core
    How the Microsoft Bot Framework Changed Where My Friends and I Eat: Part 1
    用于Azure功能的Visual Studio 2017工具
  • 原文地址:https://www.cnblogs.com/sxmcACM/p/3346282.html
Copyright © 2011-2022 走看看