比赛场次 267
比赛名称 20151019
比赛状态 已结束比赛成绩
开始时间 2015-10-19 19:00:00
结束时间 2015-10-19 22:30:00
开放分组 全部用户
注释介绍
题目名称 七十和十七
输入输出 xvii.in/out
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试点数 10 简单对比
用户 结果 时间 内存 得分
Gravatar明天 WWWWWWWWWW 0.002 s 0.31 MiB 0
Gravatar/k WWWWWWWWWW 0.003 s 0.31 MiB 0

七十和十七

★★★   输入文件:xvii.in   输出文件:xvii.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】


七十君最近爱上了排序算法,于是Ta让十七君给Ta讲冒泡排序。

十七君给七十君讲完了冒泡排序以后,七十君回家苦思冥想,又创造了一种名

为七十排序的算法。下面是这个算法排序一个排列的过程:

首先从左到右扫描每个相邻数对。如果这两个数是逆序的,则将第二个数(也

就是小的数)放在整个排列的开头,其他数位置不变,并把计数器加一。如果

没有逆序的相邻数对了,就说明已经排好序了,算法终止。

七十君认为计数器的值反映了这个算法的运行时间。但十七君觉得七十君发明

的这个算法会很慢,所以他请你帮忙算算,对于所有长度为n的排列P,

   

的值,这里f(P)表示排列P运行算法结束时计数器的值。



【输入格式】

一行一个整数n。

【输出格式】


如果E(n)=a/b,求c使得

   bc 三 a  (mod 10^9+7)

并输出,其中0≤c<10^9+7,如果e不存在输出-1。



【样例输入】

4

【样例输出】

250000005

【提示】


对于排列4 1 3 2,算法结束时计数器的值为5。

4 1 3 2,4和1形成逆序,将1放到排列最前方。

1 4 3 2,4和3形成逆序,将3放到排列最前方。

3 1 4 2,3和1形成逆序,将1放到排列最前方。

1 3 4 2,4和2形成逆序,将2放到排列最前方。

2 1 3 4,2和1形成逆序,将1放到排列最前方。

1 2 3 4,现在排列已经排序完毕。

E(4)=3.25。


 数据范围与约定

对于20%的数据,n≤8。

对于40%的数据,n≤30。

对于60%的数据,n≤200。

对于1OO%的数据,n≤10^5。



【来源】

在此键入。