根據打表可得,對於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個數(包括自己)與其對應

所以對答案有n
f[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的更多相关文章

随机推荐

  1. mRemoteNG

    mRemoteNG 1.摆脱了mstsc那种一个程序一个界面的模式,采用了左边树+右边Tab页的显示形式,让你在一个mRemote界面中,可以连接多个远程桌面,再也不用为切来切去而烦恼了(如上图). ...

  2. Golang之Mysql事务

    Mysql事务 )原子性 )一致性 )隔离性 )持久性 示例代码 package main import ( "fmt" _ "github.com/go-sql-dri ...

  3. BZOJ1222 [HNOI2001]产品加工 - 动态规划- 背包

    题解 怎么看都不像是个背包,直到我看了题解→_→, 第一次碰到这么奇怪的背包= = 定一个滚动数组$F_i$, $i$表示机器$a$用了$i$的时间, $F_i$表示机器$b$用了$F_i$的时间, ...

  4. PS抠发丝技巧 「选择并遮住…」

    PS抠发丝技巧 「选择并遮住…」 现在的海报设计,大多数都有模特MM,然而MM的头发实用太多了,有的还飘起来…… 对于设计师(特别是淘宝美工)没有一个强大.快速.实用的抠发丝技巧真的混不去哦.而PS ...

  5. jsp传中文乱码问题 encodeURIComponent()编码方法

    方法一: jQuery.ajax({            type:"POST",            url:"${ctx}/offer.do",     ...

  6. 让kbmmw 4.8 支持ios 64

    随着xe8 的出来,其开始支持IOS 64 的编译了(不支持也没办法,从今年2月开始不支持ios 64 的应用 就不允许入住apple appstore,霸气呀).相信不少同学迫不及待的开始了ios6 ...

  7. 2018.07.22哨戒炮 II(树形dp)

    哨戒炮 II 描述 你的防线成功升级,从原来的一根线变成了一棵树.这棵树有 N 个炮台,炮台与炮台之间 有 N-1 条隧道.你要选择一些炮台安装哨戒炮.在第 i 个炮台上安装哨戒炮得到的防御力为 vi ...

  8. 23. Man and His Natural Habitat 人类及其自然栖息地

    . Man and His Natural Habitat 人类及其自然栖息地 ① Ecology is that branch of science which concerns itself wi ...

  9. winform 按键控制

    用ADSW来控制前后左右,J表示开火,J不能连续按 _+表示速度档位. DateTime _LastPress = DateTime.MinValue; Keys _PrevKey = Keys.No ...

  10. UVaLive 3487 Duopoly (最小割)

    题意:有两个公司A和B在申请一些资源,现在给出两个公司所申请的内容,内容包括价钱和申请的资源 ,现在你做为官方,你只能拒绝一个申请或者接受一个申请,同一个资源不能两个公司都拥有,且申请的资源不能只给部 ...