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个数字的组 ...
随机推荐
- Java面向对象(二)
一.封装 1.为什么要使用封装在类的外部直接操作类的属性是”不安全的"2.如何实现封装 1).属性私有化:设置属性的修饰符为private 2) .提供公共的set和get方法赋值 ...
- Sequence Number
1570: Sequence Number 时间限制: 1 Sec 内存限制: 1280 MB 题目描述 In Linear algebra, we have learned the definit ...
- springboot linux启动方式
手动启动 java -Xms128m -Xmx256m -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8081,suspend=n -j ...
- python unittest框架装饰器
要说单元测试和UI自动化之间的是什么样的一个关系,说说我个人的一些心得体会吧,我并没有太多的这方面经验,由于工作本身就用的少,还有就是功能测试点点对于我这种比较懒惰的人来说,比单元测试复杂...思考单 ...
- Windows Internals 笔记——线程局部存储区
1.由于C/C++运行库是在多线程应用程序出现的许多年前设计的,因此运行库中的大多数函数是为单线程应用程序设计的. 2.当应用程序第一次调用_tcstok_s的时候该函数将传入的字符串地址保存在它自己 ...
- HDU 1075 What Are You Talking About (stl之map映射)
What Are You Talking About Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 102400/204800 K ...
- python 把类当作 装饰器
# class Test(object): # def __call__(self): # print('-----test----') # t= Test()# t() 调用主要有个__call__ ...
- python 0007
#coding='utf-8'# import re import os def get_list(): list_file=[] for f in os.listdir(): if f.endswi ...
- epoll函数
函数epoll 1. 函数epoll_creat: 该函数生成一个epoll专用的文件描述符 int epoll_creae(int size); 分析: size:epoll上能关注的最大描述符数 ...
- 1.RN环境搭建,创建项目,使用夜神模拟调试
1.环境搭建(Yarn.React Native 的命令行工具(react-native-cli)) npm install -g yarn react-native-cli 具体参考 参见官方(中文 ...