首先,记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());
}
}
}

最新文章

  1. 提高PHP代码质量的36个技巧
  2. Java Eclipse解决中文字体太小
  3. &lt;a href=”#”&gt;与 &lt;a href=”javascript:void(0)” 的区别
  4. JavaScript基础——使用数组
  5. input元素垂直居中
  6. hdu 1045:Fire Net(DFS经典题)
  7. 如何借助于UML完成我们对系统的设计?谈谈我的理解
  8. linux:C语言通过ICMP协议判断局域网内部主机是否存活
  9. URLEncode和URLDecoder作用
  10. Triangle LeetCode |My solution
  11. 基于html5 plus + Mui 移动App开发(三)-食全库
  12. 获取验证码倒计时60s
  13. 超详细动手搭建一个Vuepress站点及开启PWA与自动部署
  14. 迭代器模块 itertools
  15. 冲刺博客NO.8
  16. SQL server语句中如何实现分页
  17. 生成器&amp;迭代器,模块
  18. oracle vm突然黑屏了
  19. Android开发——Android中的二维码生成与扫描
  20. Beta版项目总结

热门文章

  1. 获取Class对象的方法及Class类型的一些讨论
  2. jquery获取html元素的绝对位置和相对位置
  3. 11.find 查找并复制文件
  4. nginx作反向代理,实现负载均衡
  5. xml操作
  6. 关于不同进制数之间转换的数学推导【Written By KillerLegend】
  7. RouterOS的MikroTik脚本从DNS更新IPSEC端的IP地址
  8. PAT IO-03 整数均值
  9. 介绍一下linux的文件系统
  10. Java集合的小抄