题目描述

  有\(1\sim n\)一共\(n\)个数。保证\(n\)为偶数。

  你要把这\(2n\)个数两两配对,一共配成\(n\)对。每一对的权值是他们两个数的和。

  你想要知道这\(n\)对里最大的权值的期望是多少。

  请输出答案对\(1000000007\)取模的值。

  \(n\leq 500000\)

题解

  枚举\(v\),计算最大权值\(\leq v\)的概率。

  从大到小枚举\(> \frac{v}{2}\)的数,这些数每次都有\(v-n\)种选择,方案数为

\[{(v-n)}^{n-\frac{v}{2}}
\]

  \(\leq \frac{v}{2}\)的数可以随便匹配。

  记\(f(x)\)为\(x\)个数随便匹配的方案数,那么

\[f(x)=\frac{x!}{2^{\frac{x}{2}}(\frac{x}{2})!}
\]

  (考虑\(x\)的全排列,\(a_{2i-1}\)和\(a_{2i}\)匹配。)

  时间复杂度:\(O(n\log n)\)

代码

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
const ll p=1000000007;
ll fp(ll a,ll b)
{
ll s=1;
for(;b;b>>=1,a=a*a%p)
if(b&1)
s=s*a%p;
return s;
}
ll f[500010];
ll g[1000010];
int main()
{
#ifndef ONLINE_JUDGE
freopen("b.in","r",stdin);
freopen("b.out","w",stdout);
#endif
int n;
scanf("%d",&n);
ll ans=0;
f[0]=1;
for(int i=2;i<=n;i+=2)
f[i]=f[i-2]*(i-1)%p;
for(int i=n+1;i<=2*n;i++)
g[i]=fp(i-n,n-i/2)*f[n-2*(n-i/2)]%p;
for(int i=2*n;i>=n+1;i--)
g[i]=(g[i]-g[i-1])%p;
for(int i=n+1;i<=2*n;i++)
ans=(ans+g[i]*i)%p;
ans=ans*fp(f[n],p-2)%p;
ans=(ans+p)%p;
printf("%lld\n",ans);
return 0;
}

【XSY2786】Mythological VI 数学的更多相关文章

  1. Mythological VI

    Description 有\(1...n\)一共\(n\)个数.保证\(n\)为偶数. 小M要把这\(n\)个数两两配对, 一共配成\(n/2\)对.每一对的权值是他们两个数的和. 小M想要知道这\( ...

  2. 社交网络图中结点的“重要性”计算 (30 分) C++解法

    社交网络图中结点的"重要性"计算 (30 分) 在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来.他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点之间蔓 ...

  3. [数学]高数部分-Part VI 重积分

    Part VI 重积分 回到总目录 Part VI 重积分 二重积分的普通对称性 二重积分的轮换对称性(直角坐标系下) 二重积分直角坐标系下的积分方法 二重积分极坐标系下的积分方法 二重积分中值定理 ...

  4. [HNOI 2013] 旅行 (数学)

    感觉此题难啊,数学还是太渣了,看了半天的题解才算明白了点儿. 题目大意 给一个长度为n且仅由1和-1组成的序列ai, i = 1, 2, ..., n,每个位置都有另一个值vi,要求用某种方案将序列划 ...

  5. hdu4623:crime 数学优化dp

    鞍山热身赛的题,也是去年多校原题 题目大意: 求n个数的排列中满足相邻两个数互质的排列的数量并取模 当时的思路就是状压dp.. dp[i][state]  state用二进制记录某个数是否被取走,i ...

  6. 数学期望和概率DP题目泛做(为了对应AD的课件)

    题1: Uva 1636 Headshot 题目大意: 给出一个000111序列,注意实际上是环状的.问是0出现的概率大,还是当前是0,下一个还是0的概率大. 问题比较简单,注意比较大小: A/C & ...

  7. vi编程技巧:

    h #向上j #向左k #向右l #向下a #插入o #插入一行,并在行首开始O #在当前行前插入一行,并在行首开始dd #删除当前行x #删除当前字符yy #复制当前行p #在当前行后面粘贴P #在 ...

  8. 【数学建模】day11-典型相关分析

    这与主成分分析有点相似. 0. 基本思想主成分分析(PCA)是把原始有相关性变量,线性组合出无关的变量(投影),以利用主成分变量进行更加有效的分析.而典型相关分析(CCA)的思想是: 分析自变量组 X ...

  9. 普林斯顿数学指南(第三卷) (Timothy Gowers 著)

    第V部分 定理与问题 V.1 ABC猜想 V.2 阿蒂亚-辛格指标定理 V.3 巴拿赫-塔尔斯基悖论 V.4 Birch-Swinnerton-Dyer 猜想 V.5 卡尔松定理 V.6 中心极限定理 ...

随机推荐

  1. Django组件 之 ookie 和 session

    -----------------------------------------------------------------------------------------相信自己,水滴石穿,不 ...

  2. socketserver + ftp

    --------------------------------------------生活不止眼前的苟且,还有诗和远方的田野. day 29 socketserver + ftp # # ----- ...

  3. 关于jsp中jstl-core标签循环遍历的使用

    JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签. 除了这些,它还提供 ...

  4. Effective java ---遵守普遍接受的命名规则

    alibaba的java命名规范如下: . [强制]代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束. 反例: _name / __name / $Object / name_ ...

  5. JEECG&JWT异常捕获强化处理 | Java: Meaning of catch (final SomeException e)?

    //从header中得到token String authHeader = request.getHeader(JwtConstants.AUTHORIZATION); if (authHeader ...

  6. Jenkins+Docker自动化集成环境搭

    关于Docker Docker 简介 Docker现在是Github社区最火的项目之一,Docker是个容器,或许你听过lxc,你可能知道Tomcat这个Web容器,容器是什么概念,意会就好.问个问题 ...

  7. [转帖]NUMA

    作者:ibless 来源:CSDN 原文:https://blog.csdn.net/ibless/article/details/80114009 其实 很早之前对这一块有了解 比较多的的是 CCN ...

  8. [转帖]xargs命令详解,xargs与管道的区别

    xargs命令详解,xargs与管道的区别 https://www.cnblogs.com/wangqiguo/p/6464234.html 之前一直说要学习一下 xargs 到现在为止也没学习.. ...

  9. [转帖]K8H3D 病毒 腾讯御剑的解析

    https://weibo.com/ttarticle/p/show?id=2309404344350225132710 永恒之蓝下载器木马又双叒叕升级了新的攻击方式​​ 背景 腾讯安全御见威胁情报中 ...

  10. Some beautiful Progress Bars in WPF

    1.Better WPF Circular Progress Bar 2.Bending the WPF ProgressBar 3.A CIRCULAR PROGRESSBAR STYLE USIN ...