atcoder#AGC036F. [AGC036F] Square Constraints

[AGC036F] Square Constraints

题目描述

整数 N N が与えられます。 (0,1,,2N1) (0,1,\cdots,2N-1) の順列 (P0,P1,,P2N1) (P_0,P_1,\cdots,P_{2N-1}) であって、次の条件を満たすものの個数を求めてください。 ただし、答えは非常に大きくなることがあるので、M M で割ったあまりを求めてください。

  • 条件: すべての i (0  i  2N1) i\ (0\ \leq\ i\ \leq\ 2N-1) について、N2  i2+Pi2  (2N)2 N^2\ \leq\ i^2+P_i^2\ \leq\ (2N)^2 が成り立つ。

输入格式

入力は以下の形式で標準入力から与えられる。

N N M M

输出格式

条件を満たす順列の数を M M で割ったあまりを出力せよ。

题目大意

给你一个整数NN,求有多少0,1,2...2N10,1,2...2N-12N2N个数)的排列PP,满足:

对于任意i(0<=i<=2N1)i(0<=i<=2N-1),有N2<=i2+Pi2<=(2N)2N^2<=i^2+P_{i}^2<=(2N)^2

输出答案对MM取模的结果(MM是输入的)

2 998244353
4
10 998244353
53999264
200 998244353
112633322

提示

制約

  • 1  N  250 1\ \leq\ N\ \leq\ 250
  • 2  M  109 2\ \leq\ M\ \leq\ 10^9
  • 入力される値はすべて整数である。

Sample Explanation 1

条件を満たす順列は、以下の 4 4 つです。 - (2,3,0,1) (2,3,0,1) - (2,3,1,0) (2,3,1,0) - (3,2,0,1) (3,2,0,1) - (3,2,1,0) (3,2,1,0)