zoukankan      html  css  js  c++  java
  • poj 1942 Paths on a Grid

    题目很简单,就是给你一个n*m的矩阵,让你求从左下角到右上角的所有路径,简单的组合数学,直接求C(n+m,m)=C(n+m,n)就可以了,只不过,在数据范围上有些需要注意的,如果直接用int型会数据溢出,所以用long long和double型的。

    提交的时候,TLE了好几次,不知道哪地方错的,后来又把原代码提交了一遍,竟然A了,而且只用了16ms,不知道是不是poj后台有问题。

    代码:

    #include <stdio.h>
    
    /*double f(double n,double m)
    {
        int i,j,s;
        if(m>n-m)
        m=n-m;
        j=1;s=1;
        for(i=n-m+1;i<=n;i++)
        {
            s*=i;
            while(j<=m&&s%j==0)
            {
                s/=j;
                j++;
            }
        }
        return (double)s;
    }*/
    
    int main()
    {
        double n,m,x,s;
        long long i;
    
        while(scanf("%lf%lf",&n,&m)!=EOF)
        {
            if(n==0.0&&m==0.0)
            break;
            s=1;
            if(n!=0&&m!=0)
            {
                x=n>m?n:m;
                for(i=x+1;i<=n+m;i++)
                {
                    s=s*i/(i-x);
                }
            }
            printf("%.0lf\n",s);
        }
        return 0;
    }
  • 相关阅读:
    03-树2 List Leaves (25 分)
    03-树1 树的同构 (25 分)
    12宏
    11.代码测试、维护
    10代码编辑、编译、审查
    9.质量保证
    02-线性结构4 Pop Sequence (25 分)
    8程序效率
    7可测性
    Linux-文件权限管理
  • 原文地址:https://www.cnblogs.com/misty1/p/2461040.html
Copyright © 2011-2022 走看看