zoukankan      html  css  js  c++  java
  • POJ 2249-Binomial Showdown(排列组合计数)

    Binomial Showdown
    Time Limit: 1000MS   Memory Limit: 65536K
    Total Submissions: 18457   Accepted: 5633

    Description

    In how many ways can you choose k elements out of n elements, not taking order into account? 
    Write a program to compute this number.

    Input

    The input will contain one or more test cases. 
    Each test case consists of one line containing two integers n (n>=1) and k (0<=k<=n). 
    Input is terminated by two zeroes for n and k.

    Output

    For each test case, print one line containing the required number. This number will always fit into an integer, i.e. it will be less than 231
    Warning: Don't underestimate the problem. The result will fit into an integer - but if all intermediate results arising during the computation will also fit into an integer depends on your algorithm. The test cases will go to the limit. 

    Sample Input

    4 2
    10 5
    49 6
    0 0
    

    Sample Output

    6
    252
    13983816

    题意:求C(n,m);

    思路:这个是当中一种办法。就是连乘r个整商:C(n,k)=C(n,k-1)*(n-k+1)/k。时间复杂度O(n);

    #include <stdio.h>
    #include <math.h>
    #include <string.h>
    #include <stdlib.h>
    #include <iostream>
    #include <algorithm>
    #include <set>
    #include <queue>
    #include <stack>
    #include <map>
    using namespace std;
    typedef long long LL;
    LL work(LL n,LL m)
    {
        if(m>n/2) m=n-m;
        LL a=1,b=1;
        for(int i=1;i<=m;i++){
            a*=n-i+1;
            b*=i;
            if(a%b==0){
                a/=b;
                b=1;
            }
        }
        return a/b;
    }
    int main()
    {
        LL n,m;
        while(~scanf("%lld %lld",&n,&m)){
            if(!n&&!m) break;
            printf("%lld
    ",work(n,m));
        }
        return 0;
    }
    



  • 相关阅读:
    python代码-实现对文件内容的哈希
    python底层的一些知识
    编码-理解
    编码的理论知识-小结
    时间同步:Linux同步国家授时中心的时间
    ASCII码表和base64码表、GBK编码表
    python说明编码和解解码
    python基础-判断一年中的第几天
    VM12及CentOS-6.10的安装
    Linux网卡配置
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/6846516.html
Copyright © 2011-2022 走看看