Submission #72067525


Source Code Expand

#include<cstdio>
int n;
const int mod = 998244353;
long long int fct[3000];
long long int ifct[3000];
long long int f[55];
long long int dp[3000][55];
long long int sdp[55][55][55];
long long int mpow(long long int x, int y) {
	if (y == 0)return 1;
	long long int r = mpow(x, y / 2);
	r *= r;
	r %= mod;
	if (y % 2 == 1) {
		r *= x;
		r %= mod;
	}
	return r;
}
long long int minv(long long int x) {
	return mpow(x, mod - 2);
}
int main() {
	scanf("%d", &n);
	fct[0] = 1;
	ifct[0] = 1;
	for (int i = 1; i <= n * n; i++) {
		fct[i] = fct[i - 1] * i;
		fct[i] %= mod;
		ifct[i] = minv(fct[i]);
	}
	long long int pown = 1;
	for (int i = 0; i < n; i++) {
		pown *= n;
		pown %= mod;
	}
	sdp[0][0][n] = 1;
	for (int i = 0; i < n; i++) {
		for (int j = 0; j <= n; j++) {
			for (int k = 0; k <= n; k++) {
				int p = j;
				if (k > j) {
					p = k;
				}
				for (int ii = k; ii <= n; ii++) {
					sdp[i + 1][p][ii - k] += sdp[i][j][ii] * fct[ii] % mod * ifct[k] % mod * ifct[ii - k] % mod;
					sdp[i + 1][p][ii - k] %= mod;
				}
			}
		}
	}
	for (int i = 1; i <= n; i++) {
		f[i - 1] = sdp[n][i][0];
	}
	long long int ans = 0;
	dp[0][0] = 1;
	for (int i = 0; i < n * n; i++) {
		for (int j = 0; j < n; j++) {
			for (int k = 0; k + j < n; k++) {
				dp[i + 1][j + k] += f[k] * dp[i][j] % mod;
				dp[i + 1][j + k] %= mod;
			}
		}
	}
	for (int j = 0; j < n; j++) {
		ans += dp[n * n][j];
		ans %= mod;
	}
	printf("%lld\n", ans);
	return 0;
}

Submission Info

Submission Time
Task A - Hamming-Distant Arrays
User gs12117
Language C++23 (GCC 15.2.0)
Score 700
Code Size 1509 Byte
Status AC
Exec Time 18 ms
Memory 4016 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 700 / 700
Status
AC × 3
AC × 14
Set Name Test Cases
Sample 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt
All 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt, 01-001.txt, 01-002.txt, 01-003.txt, 01-004.txt, 01-005.txt, 01-006.txt, 01-007.txt, 01-008.txt, 01-009.txt, 01-010.txt, 01-011.txt
Case Name Status Exec Time Memory
00-sample-001.txt AC 0 ms 1656 KiB
00-sample-002.txt AC 0 ms 1664 KiB
00-sample-003.txt AC 0 ms 1748 KiB
01-001.txt AC 8 ms 3276 KiB
01-002.txt AC 1 ms 1868 KiB
01-003.txt AC 6 ms 2992 KiB
01-004.txt AC 16 ms 3772 KiB
01-005.txt AC 0 ms 1800 KiB
01-006.txt AC 14 ms 3604 KiB
01-007.txt AC 15 ms 3848 KiB
01-008.txt AC 16 ms 3864 KiB
01-009.txt AC 17 ms 3908 KiB
01-010.txt AC 18 ms 4016 KiB
01-011.txt AC 0 ms 1636 KiB