HDU 4535 吉哥系列故事——礼尚往来(错排)
2016-06-12 23:07
218 查看
吉哥系列故事——礼尚往来
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 1414 Accepted Submission(s): 730
Problem Description
吉哥还是那个吉哥
那个江湖人称“叽叽哥”的基哥
每当节日来临,女友众多的叽叽哥总是能从全国各地的女友那里收到各种礼物。
有礼物收到当然值得高兴,但回礼确是件麻烦的事!
无论多麻烦,总不好意思收礼而不回礼,那也不是叽叽哥的风格。
现在,即爱面子又抠门的叽叽哥想出了一个绝妙的好办法:他准备将各个女友送来的礼物合理分配,再回送不同女友,这样就不用再花钱买礼物了!
假设叽叽哥的n个女友每人送他一个礼物(每个人送的礼物都不相同),现在他需要合理安排,再回送每个女友一份礼物,重点是,回送的礼物不能是这个女友之前送他的那个礼物,不然,叽叽哥可就摊上事了,摊上大事了......
现在,叽叽哥想知道总共有多少种满足条件的回送礼物方案呢?
Input
输入数据第一行是个正整数T,表示总共有T组测试数据(T <= 100);
每组数据包含一个正整数n,表示叽叽哥的女友个数为n( 1 <= n <= 100 )。
Output
请输出可能的方案数,因为方案数可能比较大,请将结果对10^9 + 7 取模后再输出。
每组输出占一行。
Sample Input
3
1
2
4
Sample Output
0
1
9
Source
2013腾讯编程马拉松复赛第二场(3月30日)
Recommend
liuyiding | We have carefully selected several similar problems for you: 5717 5716 5715 5714 5713
思路:利用错排公式。
#include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> using namespace std; __int64 f[110]; void init() { f[1]=0; f[2]=1; for(int i=3;i<=100;i++) f[i]=(f[i-1]+f[i-2])*(i-1)%1000000007; } int main() { int t,n; init(); scanf("%d",&t); while(t--) { scanf("%d",&n); printf("%I64d\n",f ); } return 0; }
相关文章推荐
- windows开关机时间记录
- Android调用WebService
- Eclipse上安装Genymotion插件(新手或找不到安装源的进来看看,给大家图个方便)
- maven学习----认识
- 树莓派lasersensor(Python程序)
- 关于游标中fetch .. bulk collect into 需要注意的点
- C++三种构造函数以及explicit和friend关键字
- python的for语句的输出格式的改变
- 安卓/平台QtQuick+socket.io+C++搭建聊天系统
- 《编程导论(Java)·9.2.3 案例:M集》
- 伽马校正(gamma correction)学习笔记
- xxxxxx.dll文件丢失的解决方法_百度经验
- 2016 院赛体验
- 【转】一些图论、网络流入门题总结、汇总
- 【EA】参数翻译
- linux下C编程详解
- keep
- “中兴捧月”比赛之——二叉查找树(BST)树的最短路径Java求解
- 魔术会说话的王牌的原理
- 关于阅读这件事