• hdu 1133 Buy the Ticket(递推+精度精算)


    做这道题之前可以先做:hdu 1267(递推方法和这道题是一样的知识没有精度计算)这是我的博客链接接:http://www.cnblogs.com/jiangjing/archive/2013/01/18/2866168.html

    题意:就是去买票,票价是50元一张,卖票的没有零钱找的,然后买票的只有50元和100元的,题意给出m个人拿了50元n个人拿了100元问总共有多少种买票顺序(不同的人也算)

    在hdu 1267里我已经讲了递推方法,我在这里就不纠结了,只要乘以m!n!就可以了

    代码实现:

    #include<stdio.h>
    #include<string.h>
    int a[101][101][101]={0};
    int b[101][101]={0}; //b数组里面保存的是a数组里面的元素个数
    void qiuhe(int x0,int y0,int x1,int y1,int n)//大数相加这种方法可以先学习下,否则看起来比较吃力
    {
        int i,j,k=0;
        j=b[x0][y0];
        if(j<b[x1][y1])
            j=b[x1][y1];
        for(i=0;i<j;i++)
        {
           a[x0][y0][i]+=a[x1][y1][i]*n+k;
           k=a[x0][y0][i]/10000;//每个元素四位
           a[x0][y0][i]%=10000;
        }
        if(k)
        {
            a[x0][y0][j]=k;
            b[x0][y0]=j+1;
        }
        else
            b[x0][y0]=j;
    }
    void jiecheng(int n)//求大数阶乘
    {
       int i,j,k=0;
       for(i=0;i<b[n-1][0];i++)
       {
           a[n][0][i]=1;
           a[n][0][i]=a[n-1][0][i]*n+k;
           k=a[n][0][i]/10000;
           a[n][0][i]=a[n][0][i]%10000;
       }
       if(k)
       {
           a[n][0][i]=k;
           b[n][0]=i+1;
       }
       else
           b[n][0]=b[n-1][0];
    }
    int main()
    {
        int T=0,i,j,m,n;
        a[1][0][0]=1;b[1][0]=1;
        for(i=2;i<=100;i++)
            jiecheng(i);//当m=0时的排列数
        for(i=1;i<=100;i++)
            for(j=i;j<=100;j++)
            {
                qiuhe(j,i,j-1,i,j);
                qiuhe(j,i,j,i-1,i);
            }
       while(scanf("%d%d",&m,&n)!=EOF&&(m||n))
        {
          T++;
          printf("Test #%d:\n",T);
          printf("%d",a[m][n][b[m][n]-1]);
          for(i=b[m][n]-2;i>=0;i--)
              printf("%4.4d",a[m][n][i]);
          printf("\n");
        }
        return 0;
    }
  • 相关阅读:
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    SSH 远程端口转发
    SSH 本地端口转发
    SSH执行远程命令和传送数据
  • 原文地址:https://www.cnblogs.com/jiangjing/p/2866169.html
Copyright © 2020-2023  润新知