hdu2049.java
hdu 2049 不容易系列之(4)——考新郎 (组合+错排)
首先,给每位新娘打扮得几乎一模一样,并盖上大大的红盖头随机坐成一排;
然后,让各位新郎寻找自己的新娘.每人只准找一个,并且不允许多人找一个.
最后,揭开盖头,如果找错了对象就要当众跪搓衣板...
看来做新郎也不是容易的事情...
假设一共有N对新婚夫妇,其中有M个新郎找错了新娘,求发生这种情况一共有多少种可能.
有个牵手游戏规则如下:
有标号 1.的女生与标号1,2,3,4......n-1,n.的男生.
我们规定标号相同的男生与女生不能牵手。
同时规定错排个数为M(1),M(2),M(3)。。。M(n-1),M(n),
我们假设1号女生先开始牵手,那么有n-1种选法,我们假设2号女生牵手1和不牵1男生手的两种情况,
假设2一定牵手1,那么还有编号3,4......n-1,n的男女生,
则有(n-1)*M(n-2)种情况;
另一种情况2一定不牵1的手,那么1号男生就等价于2号男生因为1号男生一定不能牵2号女生的手,相当于还有编号2,3,4......n-1,n的男女生,
则有(n-1)*M(n-1)种情况;所以总共有(n-1)*(M(n-1)+M(n-2))种情况;
import java.util.*;
class Main{
static long []s=new long [24];
public static long sum(int t)
{long []a=new long [24];
s[0]=1;s[1]=1; s[2]=2;
a[1]=0;a[2]=1;
for(int i=3;i<24;i++){
a[i]=(i-1)*(a[i-1]+a[i-2]);
s[i]=s[i-1]*i;
}
return a[t];
}
public static void main(String args[]){
Scanner cin=new Scanner(System.in);
int n=cin.nextInt();
while(n-->0){
long sss=0;
int t1=cin.nextInt();
int t2=cin.nextInt();
sss=sum(t2)*(s[t1]/s[t2]/s[t1-t2]);
System.out.println(sss);
}
}
}
hdu2049.java的更多相关文章
- Spark案例分析
		
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
 - HDU2049 不容易系列之(4)考新郎 —— 错排
		
题目链接:https://vjudge.net/problem/HDU-2049 不容易系列之(4)——考新郎 Time Limit: 2000/1000 MS (Java/Others) Me ...
 - 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题
		
背景起因: 记起以前的另一次也是关于内存的调优分享下 有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...
 - Elasticsearch之java的基本操作一
		
摘要 接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...
 - 论:开发者信仰之“天下IT是一家“(Java .NET篇)
		
比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...
 - 故障重现, JAVA进程内存不够时突然挂掉模拟
		
背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...
 - 死磕内存篇 --- JAVA进程和linux内存间的大小关系
		
运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...
 - 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用
		
有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...
 - Java多线程基础学习(二)
		
9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...
 
随机推荐
- 【HDU 2855】 Fibonacci Check-up (矩阵乘法)
			
Fibonacci Check-up Problem Description Every ALPC has his own alpc-number just like alpc12, alpc55, ...
 - CAS单点登录配置[2]:证书生成
			
上一篇介绍了准备工作,本片将介绍如何生成证书. 服务器端证书 1 我们在F盘下建立一个cas文件夹,在此文件夹中生成证书文件,打开命令窗口,进入此目录下,如图: 2 生成服务器端证书, 此命令用于在当 ...
 - Xamarin IOS – hello word
			
原文:Xamarin IOS – hello word 环境 硬件:Macbook pro Retina 13 系统:10.11.3 EI Capitan Xcode:7.0 Ps:配置刚刚够用. 安 ...
 - 用JAVA 查询 Active Directory(AD)
			
Required Details LDAP address (For e.g.: myjeeva.com or IP of the Domain Controller/Global Catalog[G ...
 - bzoj1034
			
贪心 尽可能让最强的赢,最弱的赢,都不行则最弱打最强 感性的想,我肯定要尽可能的赢,而且赢的要对等 实在不能赢就拿最小的拼,所谓的田忌赛马策略 由于总分一定,己方最差即己方最好时对方的分数 ..] o ...
 - Java 编程下 Eclipse 如何设置单行代码显示的最大宽度
			
Eclipse 下一行代码的默认宽度是 80 , 稍长一点的一行代码就会自动换行,代码可读性较差,我们可以自己在 Eclipse 对代码宽度进行设置. 设置路径为:[Window]→[Preferen ...
 - 【转】eclipse android 设置及修改生成apk的签名文件 -- custom debug keystore
			
原文网址:http://hold-on.iteye.com/blog/2064642 android eclipse 设置及修改生成apk的签名文件 1. 问题: 平时在使用eclipse进行andr ...
 - linux kernel API and google android compile guide
			
(1)linux kernel API website: http://docs.knobbits.org/local/linux-doc/html/regulator/index.html http ...
 - HDU-1391                          Number Steps
			
http://acm.hdu.edu.cn/showproblem.php?pid=1391 Number Steps Time Limit: 2000/1000 MS (Java/Others) ...
 - 论SOA架构的几种主要开发方式【转】
			
面向服务架构soa以其独特的优势越来越受到企业的重视,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署.组合和使用.服务层是SOA的基础,可以直接被应用调用,从而有效控制系 ...