hdu 1133 Buy the Ticket
2024-08-26 10:04:56
首先,记50的为0,100的为1.
当m=4,n=3时,其中的非法序列有0110010;
从不合法的1后面开始,0->1,1->0,得到序列式0111101
也就是说,非法序列变为了n-1个0,m+1个1.
总的数目=C(m+n,n),非法的=C(m+n,m+1)
符合数目=(C(m+n,n)-C(m+n,m+1))*m!*n!;
化简得:(m+n)!*(m+1-n)/(m+1).
Java代码:
import java.io.*;
import java.math.*;
import java.math.BigInteger;
import java.lang.String.*;
import java.util.*;
public class Main
{
public static BigInteger [] p;
public static void main(String arg[])
{
int i;
p = new BigInteger[201];
p[0]=BigInteger.valueOf(1);
for(i=1;i<=200;i++)
p[i]=p[i-1].multiply(BigInteger.valueOf(i));
Scanner cin = new Scanner(System.in);
int k=1;
while(true)
{
int m = cin.nextInt();
int n = cin.nextInt();
if(m==0&&n==0) break; System.out.println("Test #"+k+++":");
if(m<n)
System.out.println("0");
else
System.out.println(p[m+n].multiply(BigInteger.valueOf(m+1-n)).divide(BigInteger.valueOf(m+1)).toString());
}
}
}
最新文章
- 提高PHP代码质量的36个技巧
- Java Eclipse解决中文字体太小
- <;a href=”#”>;与 <;a href=”javascript:void(0)” 的区别
- JavaScript基础——使用数组
- input元素垂直居中
- hdu 1045:Fire Net(DFS经典题)
- 如何借助于UML完成我们对系统的设计?谈谈我的理解
- linux:C语言通过ICMP协议判断局域网内部主机是否存活
- URLEncode和URLDecoder作用
- Triangle LeetCode |My solution
- 基于html5 plus + Mui 移动App开发(三)-食全库
- 获取验证码倒计时60s
- 超详细动手搭建一个Vuepress站点及开启PWA与自动部署
- 迭代器模块 itertools
- 冲刺博客NO.8
- SQL server语句中如何实现分页
- 生成器&;迭代器,模块
- oracle vm突然黑屏了
- Android开发——Android中的二维码生成与扫描
- Beta版项目总结