4535 ACM 礼尚往来 数学排列组合
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4535 
题意:每个礼物都不相同的组合个数 
数学规律: 
将每个女友排序为1···n,对应的女友送男友的礼物排序为1···n; 
1<=k,h<=n; 
k,h为1··n的任意数,且k不等于h 
接下来讨论排列组合: 
接下来在第k个女友的位置放上一个礼物,有n-1种可能; 
假设k小于h 
1···k···h···n(女友) 
1···k···h···n(礼物) 
不妨假设礼物h放在了女友k上,现在思考哈,在礼物中,除了礼物k放在女友中某一个位置的可能是n-1,其他礼物都是n-2,这是由于礼物k的位置(女友k)已经被放了。 
接下来分两种情况讨论(L(n)表示n个礼物送个n个女友,每个礼物都不相同的组合个数) 
·1· 
k放在h位置上 
那剩下位置有L(n-2)种可能。 
·2· 
k不放在h位置上 
那剩下位置有L(n-1)种可能。 
所以:L(n)=(n-1)(L(n-2)+L(n-1))
#include<cstdio>
#define mod 1000000007  //10^9 + 7
long long  f[110];
void get()
{
    f[1]=0;
    f[2]=1;
    for(int i=3;i<101;i++)
        f[i]=(i-1)*(f[i-1]+f[i-2])%mod;
}
int main()
{
    get();//注意要函数调用
    int t,n;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        printf("%I64d\n",f[n]);
    }
}4535 ACM 礼尚往来 数学排列组合的更多相关文章
- 【BZOJ1008】【HNOI2008】越狱(数学排列组合题)
		1008: [HNOI2008]越狱 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 3140 Solved: 1317[Submit][Status] ... 
- UVALive 6909 Kevin's Problem 数学排列组合
		Kevin's Problem 题目连接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid ... 
- ACM~排列组合&&hdu例子
		排列组合是数学中的一个分支.在计算机编程方面也有非常多的应用,主要有排列公式和组合公式.错排公式.母函数.Catalan Number(卡特兰数)等. 一.有关组合数学的公式 1.排列公式 P(n ... 
- 【排列组合】ZSC1076: 数学、不容易系列之三——考新郎
		国庆期间,省城刚刚举行了一场盛大的集体婚礼,为了使婚礼进行的丰富一些,司仪临时想出了有一个有意思的节目,叫做"考新郎",具体的操作是这样的: 首先,给每位新娘打扮得几乎一模一样,并 ... 
- HDU 4045 Machine scheduling (组合数学-斯特林数,组合数学-排列组合)
		Machine scheduling Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ... 
- Codeforces Round #309 (Div. 2) C. Kyoya and Colored Balls 排列组合
		C. Kyoya and Colored Balls Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contes ... 
- HDU 4497 GCD and LCM(分解质因子+排列组合)
		题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4497 题意:已知GCD(x, y, z) = G,LCM(x, y, z) = L.告诉你G.L,求满 ... 
- PHP的排列组合问题  分别从每一个集合中取出一个元素进行组合,问有多少种组合?
		首先说明这是一个数学的排列组合问题C(m,n) = m!/(n!*(m-n)!) 比如:有集合('粉色','红色','蓝色','黑色'),('38码','39码','40码'),('大号','中号') ... 
- Go语言实现列出排列组合
		今天,隔壁坐的小朋友给我一串数字: 1 6 21 55 让我观察规律,然后帮他推导公式. 尼玛,当我是神呢?!! 想了半天没看出个原委, 于是看了他那边具体需要才发现他那边是对N个数字进行5个数字的组 ... 
随机推荐
- Android播放功能的实现
			Android播放语言功能的实现 需要用到的类文件TextToSpeech,此类可以实现播放语言的功能 支持播放的语言1.英语 2.法语 3.德语 4.意语 5.西班牙语 1.实例化此类,添加上下文对 ... 
- 繁简字转换(C#)
			1.首先引入: using Microsoft.VisualBasic; 2.转换方法: //繁体转简体 public static string Traditional2Simplified(str ... 
- JAVA之复制数组
			//复制数组 //Arrays.copyOf(arr, 5) //arr:要复制的对象,5为新数组的长度 import java.util.Arrays; public class Cope { pu ... 
- C# 位移运算
			一:“<<”和“>>”运算符用于执行移位运算,分别称为左移位运算符和右移位运算符.对于X<<N和X>>N形式的运算,含义是将X向左或向右移动N位,得到的 ... 
- Oracle亿级数据查询处理(数据库分表、分区实战)
			大数据量的查询,不仅查询速度非常慢,而且还会导致数据库经常宕机(刚接到这个项目时候,数据库经常宕机o(╯□╰)o). 那么,如何处理上亿级的数据量呢?如何从数据库经常宕机到上亿数据秒查?仅以此篇文章作 ... 
- Hadoop集群最迅速的配置免密码登陆方法
			1:多台机器互相免密登陆的思路(默认你的linux操作系统已经安装好ssh): 第一步:在各自的机器上面生成密钥: 在第1台机器上生产一对钥匙: ssh-keygen -t rsa 在第2台机器上生产 ... 
- thinkphp5分页传参
			$name = input('get.searchKey/s'); if($name != ""){ $this->assign('searchKey', $name); $ ... 
- java传值和传引用区别
			1. 在java中所有的参数都是传值的,引用符号&的传递是C++中才有的:2. 在java传参中,基本类型(byte--short--int--long--float--double--boo ... 
- 令人疑惑的 std::remove 算法
			摘自<Effective STL>第32条 remove的声明: template<class ForwardIterator, class T> ForwardIterato ... 
- Summary of continuous function spaces
			In general differential calculus, we have learned the definitions of function continuity, such as fu ... 
