吉哥系列故事——礼尚往来

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 1365    Accepted Submission(s): 696

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:  5664 5663 5662 5661 5660 

用错排做,错排是小学奥数的东西。。。

错排推倒:

甲,乙,丙,丁,戊,五个人各自分别制作了一份新年贺卡,然后各自送给这五个人中的一个而不是自己,且最
后谁都能得到贺卡,共有多少种送出的方法?
 
 
雪帆奥数王老师分析与提示:
这种题一般都采用树形图结合枚举处理。
 
枚举方法如下(为了方便起见,A对着1,B对着2,依次类推)
A对着2,3,4,5,种类是一样的,所以只要枚举其中一类,然后乘以4即可。
 
                        A-2 (A-3,4,5,这四种是对称的,只枚举一种情况,到时候乘以4即可)
              B-1                  B-3,4,5(这三种也是对称的,可以只枚举B-3,到时候乘以3即可)
          C-4,5,×2 )            C-1   C-4 (C-5 , ×2) 
          D-5                       D-5    D-5
          E-3                       E-4    E-1
 所以方法为
       【(1×2)+(1+1×2)×3】×4=44 种
 
但是人数较多怎么办呢?能不能找到一定的规律呢?
探讨方法如下:
先从1个人开始讨论,如果是一个人制作了一份新年贺卡,很显然只能是0种
如果是两个人,那么他们可以互相交换,1种方法,
如果是三个人,通过枚举,也只有2种方法,继续讨论递推关系
设n个不同元素分别标号1,2,3,……,n,要求它们分别被放入标号为1,2,3,……,n的位置上,一个位置
有且只有一个元素,且元素的标号与位置的标号不能相同,记其方法数为(排列与组合)错排问题
从中任取一个元素,不妨取1号元素,还剩n-1个元素,再从这n-1个元素对应的位置中选一个,共n-1种方法
假设选取的位置是2号位,以下分两种情况
第一种,1号元素放入2号位置且2号元素也放入1号位置,此时剩下n-2个元素继续错排,共(排列与组合)错排问题种方法

第二种,1号元素放入2号位置但2号元素不放入1号位置,既然2号元素不放入1号位置,不妨把2号元素看作1号元
素,于是等价于新的1号元素不放入1号位置(雪帆老师提示:好好理解这句话的意思),那么剩下n-1个元素继续错排,共(排列与组合)错排问题种方法
于是得到递推式(排列与组合)错排问题
(排列与组合)错排问题

所以,三个元素错排是(3-1)(0+1)=2(种)方法,四个元素错排是(4-1)(1+2)=9(种)方法,四个元素错排有
五个元素错排是(5-1)(2+9)=44(种)方法,……
 
错排递推公式
F(n)=(n-1)(F(n-1)+F(n-2))  F表示方法。F(n)表示n个物体错排的种类

#include <stdio.h>
#define mod 1000000007
long long a[101];//得用long long ,int过不了
void dabiao()
{a[1]=0;a[2]=1;for(int i=3;i<101;i++){a[i]=(i-1)*(a[i-1]+a[i-2])%mod;}
}
int main()
{int t;scanf("%d",&t);dabiao();while(t--){int n;scanf("%d",&n);printf("%lld\n",a[n]);}return 0;
}

HDU:4535 吉哥系列故事——礼尚往来(数学:错排)相关推荐

  1. HDU 4535 吉哥系列故事——礼尚往来

    http://acm.hdu.edu.cn/showproblem.php?pid=4535 题目大意: 有n个妹纸没人送给吉哥一个礼物,他决定进行合理的分配,即将这些礼物送回去,就不用花钱买新礼物了 ...

  2. 杭电4535吉哥系列故事——礼尚往来

    吉哥系列故事--礼尚往来 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Tot ...

  3. HDU 4513 吉哥系列故事――完美队形II(Manacher)

    题目链接:[kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher V - 吉哥系列故事――完美队形II 题意 吉哥又想出了一个新的完美队形游戏! 假设有n个人 ...

  4. HDU 4512 吉哥系列故事――完美队形I(最长公共上升子序列)

    吉哥系列故事--完美队形I Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To ...

  5. HDU 4502 吉哥系列故事——临时工计划(动态规划)

    吉哥系列故事--临时工计划                                                                                      T ...

  6. HDU 4507 吉哥系列故事――恨7不成妻 数位DP

    吉哥系列故事--恨7不成妻 Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Tot ...

  7. 吉哥系列故事——礼尚往来(简单容斥问题)

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=4535 Description 吉哥还是那个吉哥 那个江湖人称"叽叽哥"的基哥 每当节日 ...

  8. HDU 4507 吉哥系列故事——恨7不成妻 详解(变态数位DP)

    Problem Description 单身! 依然单身! 吉哥依然单身! DS级码农吉哥依然单身! 所以,他生平最恨情人节,不管是214还是77,他都讨厌! 吉哥观察了214和77这两个数,发现: ...

  9. HDU - 4507 吉哥系列故事――恨7不成妻 (数位DP)

    Description 单身! 依然单身! 吉哥依然单身! DS级码农吉哥依然单身! 所以,他生平最恨情人节,不管是214还是77,他都讨厌! 吉哥观察了214和77这两个数,发现: 2+1+4=7 ...

最新文章

  1. 教你制作可以随身携带的FreeBSD系统[转]
  2. [整理] C#调用SQLDMO.DLL时间数据库备份 / 还原。 (香神无涯) // C#实现SQLSERVER2000数据库备份还原的两种方法 (带进度条)...
  3. java 鼠标拖动图形_java怎么实现鼠标在桌面拖动过程中 画 矩形的 功能?
  4. ImportError: cannot import name 'six' from 'django.utils'
  5. jquery报变量没定义错误的原因
  6. [转] oracle 数据库 SQL plus 连接方法
  7. 双三次插值(BiCubic插值)
  8. Office2016装Mathtype找不到WLL
  9. 【深度学习】Github 最受欢迎的深度学习项目 TOP 20
  10. 鹅厂流出两份Android Framework技术宝典火了,完整版 PDF 限时开放下载
  11. 山东 计算机专业,山东省内计算机专业大学排名?
  12. 采药问题 c语言程序,采药-题解(C语言代码)
  13. 浏览器获取mac地址_真香浏览器,时隔2个月终于又更新了!!!
  14. linux maskrom模式,微雪电子RK3308主板CC启动模式介绍
  15. 无法将值vmware-tray.exe写入注册表
  16. 2019年快来了,送给每位程序员一份新年计划清单
  17. SQL高级语句(一)
  18. 形式语义学-chapter 3 Attribute Grammars
  19. pandas数据上采样
  20. CMake Error at CMakeLists.txt:97 (ADD_TARGET_DEFINITIONS): Unknown CMake command ADD_TARGET_DEFIN

热门文章

  1. 5.物体的多边形表示
  2. shell内建命令--Linux
  3. 2022年中国互联网数据中心(IDC)行业产业链及市场现状分析(附国家绿色数据中心公示名单)[图]
  4. vue+elemnt ul 图片上传隐藏按钮+图片回显
  5. 四十二、Docker-虚拟化入门
  6. html表格怎么取消自动换行,css怎么控制表格不要自动换行?
  7. 计算机专业除了当码农,还有什么好的就业方向?
  8. 六、Hystrix详解三:Hystrix的健康监测
  9. 刚才发现微软拼音-简洁2010是目前比较适合程序员的输入法
  10. AI 加持实时互动|ZegoAvatar 面部表情随动技术解析