jzoj5931
根據打表可得,對於n的情況
任意一個首位!=1的排列時,則其答案-1可以與首位為1的情況對應
當n=4時
排列 答案
1 2 3 4 ------ 0
1 2 4 3 ------ 1
1 3 2 4 ------ 1
1 3 4 2 ------ 2
1 4 2 3 ------ 2
1 4 3 2 ------ 1
2 1 3 4 ------ 1
2 1 4 3 ------ 2
2 3 1 4 ------ 2
2 3 4 1 ------ 3
2 4 1 3 ------ 3
2 4 3 1 ------ 2
3 1 2 4 ------ 2
3 1 4 2 ------ 3
3 2 1 4 ------ 1
3 2 4 1 ------ 2
3 4 1 2 ------ 2
3 4 2 1 ------ 3
4 1 2 3 ------ 3
4 1 3 2 ------ 2
4 2 1 3 ------ 2
4 2 3 1 ------ 1
4 3 1 2 ------ 3
4 3 2 1 ------ 2
記f[i]表示i個數,所有i個數可以組成的排列的答案總和
則我們發現,有(n-1)(n-1)!項首位不等於1的排列,對答案有1的貢獻
除此之外,我們會發現,首項為1的數由於有n個數(包括自己)與其對應
所以對答案有nf[i-1]的貢獻
所以f[i]=if[i-1]+(i-1)(i-1)!
注意要逆元
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define mo 998244353ll
ll t,f[10000010],n,jc[10000010];
ll qp(ll x,ll y){
ll r=1;
x%=mo;
while(y){
if(y&1)r=r*x%mo;
y>>=1;
x=(x*x)%mo;
}
return r;
}
int main(){
freopen("inverse.in","r",stdin);
freopen("inverse.out","w",stdout);
jc[0]=1;
for(ll i=1;i<=10000010;i++)
jc[i]=jc[i-1ll]*i%mo;
for(ll i=1;i<=10000010;i++)
f[i]=(i*f[i-1ll]%mo+(i-1ll)*jc[i-1ll]%mo)%mo;
scanf("%lld",&t);
while(t--){
scanf("%lld",&n);
printf("%lld\n",f[n]*qp(jc[n],mo-2ll)%mo);
}
}
jzoj5931的更多相关文章
随机推荐
- 关闭文件流--fclose,
头文件:#include<stdio.h> 函数原型:int fclose(FILE *fp) 参数说明:fp将被关闭的文件指针 返回值:成功返回0,失败返回EOF宏.
- JavaScript 代码小片段
1.获取对象 obj 的所有属性(自有属性和继承属性),保存到数组 lst 中 //获取对象obj的所有属性(自有属性和继承属性),保存到数组lst 中 var lst = []; function ...
- ajax序列化表单,再也不用通过data去一个个的传值了
jQuery的serialize()方法通过序列化表单值,创建URL编码文本字符串,我们就可以选择一个或多个表单元素,也可以直接选择form将其序列化 这样,我们就可以把序列化的值传给ajax()作为 ...
- ThinkPHP5 union分页
直接贴代码,记录一下,备用 $a = Db::name(表名)->field(字段)->where(条件)->buildSql(); $b = Db::name(表名)->fi ...
- 【转】web应用缓慢故障分析
在这以后里分享一篇关于web应用缓慢的分析过程,感觉挺有用的. 原文出处:http://xjsunjie.blog.51cto.com/999372/751585 友在一家购物网站做运维不久,今日打电 ...
- 20155211 2016-2017-2 《Java程序设计》第七周学习总结
20155211 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 第十二章 Lambda Lambda表达式中this的参考对象以及toString()的接受 ...
- Word图片上传控件(WordPaster)更新-2.0.15版本
更新说明: 1. 增加对webp图片的支持,支持微信公众号图片的下载. 效果参考:http://www.ncmem.com/doc/view.aspx?id=9761f8ce4fe04d0ab0f ...
- virtualenv 安装及使用[转]
一如既往,官方文档: https://virtualenv.pypa.io/en/latest/ 下载地址:https://pypi.python.org/pypi/virtualenv#down ...
- iPhone 物理尺寸与分辨率
// iPhone 物理尺寸(pt:Point) 分辨率(px) // 4S 320*480(3.5英寸) 640*960 // 5,5c,5S 32 ...
- 对比手机SLAM和机器人SLAM
陀螺仪?? IMU?? 加速度器与?? 人与机器 惯性定位与?? 步骤上对比Project Tango与SLAM