P5259 [JSOI2013]游戏中的学问

2021-05-31 00:04

阅读:667

标签:sizeof   size   排列   数据   cpp   ret   游戏   while   多项式   

环排列的EGF为:

\[f(x)=\sum_{3\le i} {(i-1)! x^i \over i!}=\sum_{3\le i} {x^i \over i} \]

那么这道题答案就是 :

\[{n!\over k!}[x^n]f^k(x) \]

数据范围太小,甚至多项式乘法不用 NTT

#include 
#include 
#include 

using namespace std;

const int N = 3005;

int n, k, p;

inline int power(int a, int b) {
	int k = b, t = 1, y = a;
	while (k) {
		if (k & 1) t = (1ll * t * y) % p;
		y = (1ll * y * y) % p; k >>= 1;
	} return t;
}

inline int inv(int x)  {
	return power(x, p - 2);
}

int t[N], y[N], a[N], ans = 1;

int main() {
	scanf("%d%d%d", &n, &k, &p);
	for (int i = k + 1; i = p) t[i + j] -= p;
				}
		} k >>= 1;
		for (int i = 0; i = p) y[i + j] -= p;
			}
	} printf("%d", ((1ll * ans * t[n]) % p + p) % p);
	return 0;
}

P5259 [JSOI2013]游戏中的学问

标签:sizeof   size   排列   数据   cpp   ret   游戏   while   多项式   

原文地址:https://www.cnblogs.com/wwlwakioi/p/14640471.html


评论


亲,登录后才可以留言!