传送门

新年祝福

  15个人聚集在一起,新年到来,他们每个人写下了一句新年祝福。大家把祝福收集起来,然后重新分回去。如果一个人拿到了自己写的祝福,他就会觉得很没有意思,因为得不到别人的祝福。要避免这种尴尬,一共会有多少种分配方案?

  一句话题意:求满足下列条件的n的排列个数:对于任意i(1≤i≤n),排列的第i个数不是i。本题中n=15。

  例如n=3时,满足条件的排列有2个:312和231

  设答案数列为$a_n$,容易知道$a_0=1$,$a_1=0$,下面我们证明$a_n=(n-1)(a_{n-1}+a_{n-2})$,利用这个式子就可以很容易算出$a_{15}$

  我们用这样一个角度看待n的一个排列:对于排列的第i个数$b_i$,我们连从i向$b_i$一条边,最后会得到一些环。例如2143对应两个环:1->2->1和3->4->3,长度均为2。31245对应3个环:1->3->2->1,4和5,长度分别为3、1、1。

  一个符合条件的完全错位的排列不能有长度为1的环。要统计n时的所有合法排列,我们可以把它们分成两类:n所在环长度为2和n所在环大于2。第一类我们可以枚举与n在同一个环上的数字,一共有n-1种可能,此后剩下的n-2个数字可以独立考虑,方案数为$a_{n-2}$,所以是$(n-1)*a_{n-2}$。第二类在删除掉n这个数以后仍然是合法排列,可以在n-1的所有排列上任意位置插入一个n来得到,共有n-1种插入位置,所以是$(n-1)*a_{n-1}$。因此$a_{n}=(n-1)(a_{n-1}+a_{n-2})。$

  定位:中等题、思维题

GMA Round 1 新年祝福的更多相关文章

  1. GMA Round 1 新年的复数

    传送门 新年的复数 已知$\left\{\begin{matrix}A>B>0\\ AB=1\\ (A+B)(A-B)=2\sqrt{3}\end{matrix}\right.$ 求$(A ...

  2. GMA Round 1

    学弟说我好久没更blog了. 因为自己最近其实没干什么. 所以来搬运一下GMA Round 1 的比赛内容吧,blog访问量.网站流量一举两得. 链接:https://enceladus.cf/con ...

  3. GMA Round 1 大吉大利,晚上吃鸡

    传送门 大吉大利,晚上吃鸡 新年走亲访友能干点啥呢,咱开黑吃鸡吧. 这里有32个人,每个人都可能想玩或者不想玩,这样子一共有$2^{32}$种可能.而要开黑当然得4人4人组一队(四人模式),所以说如果 ...

  4. GMA Round 1 YGGDRASIL

    传送门 YGGDRASIL 在YGGDRASIL世界,一年有213天. Demiurge推广种植了一种植物,姑且称之为“黄金果”,它第一期生长需要140天,此后第i期生长需要的天数$a_i$满足$a_ ...

  5. canvas动画效果新年祝福话语

    html代码 <ul id="ul"></ul> css代码 * { margin:; padding:; } ul { list-style: none; ...

  6. GMA Round 1 数列与方程

    传送门 数列与方程 首项为1,各项均大于0的数列{$a_n$}的前n项和$S_n$满足对于任意正整数n:$S_{n+1}^2-2*S_{n+1}*S_{n}-\sqrt{2}*S_n-1=0$,求$a ...

  7. GMA Round 1 离心率

    传送门 离心率 P是椭圆$\frac{x^2}{a^2}+\frac{y^2}{b^2}=1$上一点,F1.F2为椭圆左右焦点.△PF1F2内心为M,直线PM与x轴相交于点N,NF1:NF2=4:3. ...

  8. GMA Round 1 波动函数

    传送门 波动函数 f(x)是一个定义在R上的偶函数,f(x)=f(2-x),当$x\in[-1,1]$时,f(x)=cos(x),则函数$g(x)=f(x)-|cos(\pi x)|$,求g(x)在[ ...

  9. GMA Round 1 空降

    传送门 空降 在一块100m*100m的平地上,10位战士从天而降!他们每人会均匀随机地落在这个地图上的一个点. 紧随其后,BOSS随机出现在这个地图上的某一点,然后它会奔向位于左上角的出口,而战士们 ...

随机推荐

  1. js中时间大小的比较

    今天在前台做到一个需要比较两个日期大小的地方,乍一看,发现一个比较奇怪地地方: var t1 = new Date(2018,1,1), t2 = new Date(2018,1,1); consol ...

  2. Python学习(二十五)—— Python连接MySql数据库

    转载自http://www.cnblogs.com/liwenzhou/p/8032238.html 一.Python3连接MySQL PyMySQL 是在 Python3.x 版本中用于连接 MyS ...

  3. js 时间动画优化

    function moveDivTimeBasedImprove(div, fps) { var left = 0; var current = +new Date; var previous = + ...

  4. httpd的rpm包及源码安装配置

    httpd的rpm包及源码安装配置 1.rpm包安装 系统环境: [root@zhaochj ~]# cat /etc/issue CentOS release 6.4 (Final) Kernel ...

  5. Tallest Cow POJ - 3263 (区间点修改)

    FJ's N (1 ≤ N ≤ 10,000) cows conveniently indexed 1..N are standing in a line. Each cow has a positi ...

  6. 错误 在类中找不到main方法请将main方法定义为 public static void main String args否则JavaFX应用程序类必须扩展javafx-ap

    最近在使用eclipse编写java程序时遇到这样一个问题: 错误在类中找不到main方法,请将main方法定义为 public static void main(String[] args)否则 J ...

  7. POJ 3189 Steady Cow Assignment 【二分】+【多重匹配】

    <题目链接> 题目大意: 有n头牛,m个牛棚,每个牛棚都有一定的容量(就是最多能装多少只牛),然后每只牛对每个牛棚的喜好度不同(就是所有牛圈在每个牛心中都有一个排名),然后要求所有的牛都进 ...

  8. Stm32基础

    Stm32基础 目录 常用功能函数 跑马灯实验 蜂鸣器实验 按键实验 端口复用与重映射 常用功能函数 初始化gpio函数 作用:初始化一个或者多个io口(同一组)的工作方式和速度该函数主要是操作GPI ...

  9. 解决UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range

    字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(en ...

  10. dhcp搭建

    DHCP服务搭建 动态主机配置协议 dhcp曾用名 bootp 应用规模:终端超过五台,建议使用DHCP分配的信息:IP地址,NETMASK掩码,GATEWAY网关,DNS1DNS服务器,DNS2,D ...