hdu 1133 Buy the Ticket 卡特兰数+递推+java
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int i=0,n=0,m=0,cas=0;
while(in.hasNextInt())
{
m=in.nextInt();
n=in.nextInt();
if(n==0&&m==0) break;
BigInteger ans=BigInteger.ONE;
for(i=1;i<=m+n;i++)
ans=ans.multiply(BigInteger.valueOf(i));
ans=ans.multiply(BigInteger.valueOf(m-n+1));
ans=ans.divide(BigInteger.valueOf(m+1));
++cas;
System.out.println("Test #"+cas+":");
if(m<n) ans=BigInteger.ZERO;
System.out.println(ans);
}
in.close();
}
}
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int i=0,j=0,n=0,m=0,cas=0;
BigInteger[][] a=new BigInteger[150][150];
for(i=0;i<=100;i++)
for(j=0;j<=100;j++)
a[i][j]=BigInteger.ZERO;
a[1][1]=BigInteger.ONE;
for(i=2;i<=100;i++)
a[i][1]=BigInteger.valueOf(i);
for(i=2;i<=100;i++)
for(j=2;j<=i;j++)
{
a[i][j]=a[i-1][j].add(a[i][j-1]);
}
while(in.hasNextInt())
{
n=in.nextInt();
m=in.nextInt();
if(n==0&&m==0) break;
BigInteger ans=BigInteger.ONE;
for(i=1;i<=n;i++)
ans=ans.multiply(BigInteger.valueOf(i));
for(i=1;i<=m;i++)
ans=ans.multiply(BigInteger.valueOf(i));
ans=ans.multiply(a[n][m]);
++cas;
System.out.println("Test #"+cas+":");
System.out.println(ans);
}
in.close();
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/