QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#283880#7774. 基础寄术练习题zzzYheng25 3ms3680kbC++17839b2023-12-15 17:26:272023-12-15 17:26:27

Judging History

你现在查看的是最新测评结果

  • [2023-12-15 17:26:27]
  • 评测
  • 测评结果:25
  • 用时:3ms
  • 内存:3680kb
  • [2023-12-15 17:26:27]
  • 提交

answer

#include <bits/stdc++.h>

#define int long long

using namespace std;

const int kMaxN = 105;

int n, m, k, p;

int inv[kMaxN];

int f[kMaxN][kMaxN];

int getPow(int x, int y) {
	int res = 1;
	while (y) {
		if (y & 1) res = res * x % p;
		x = x * x % p;
		y >>= 1;
	}
	return res;
}

void add(int &x, int y) {
	x += y;
	if (x >= p) x -= p;
	if (x < 0) x += p;
}

int ans;

signed main() {
	ios::sync_with_stdio(false);
	cin.tie(0), cout.tie(0);
	
	cin >> n >> m >> k >> p;
	for (int i = 1; i <= m; ++i) {
		inv[i] = getPow(i, p - 2);
	}
	f[0][0] = 1;
	for (int i = 1; i <= n; ++i) {
		for (int j = 1; j <= m; ++j) {
			for (int k = 0; k < j; ++k) {
				add(f[i][j], f[i - 1][k] * inv[j] % p);
			}
		}
	}
	for (int i = 1; i <= m; ++i) add(ans, f[n][i]);
	cout << ans << '\n';
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 10
Accepted
time: 0ms
memory: 3452kb

input:

9 16 1 327134593

output:

162102742

result:

ok single line: '162102742'

Test #2:

score: 0
Accepted
time: 0ms
memory: 3584kb

input:

11 18 1 834359503

output:

256188485

result:

ok single line: '256188485'

Test #3:

score: 0
Accepted
time: 0ms
memory: 3356kb

input:

18 18 1 614802701

output:

552168146

result:

ok single line: '552168146'

Test #4:

score: -10
Wrong Answer
time: 0ms
memory: 3456kb

input:

7 16 2 861918403

output:

657291050

result:

wrong answer 1st lines differ - expected: '306693876', found: '657291050'

Subtask #2:

score: 25
Accepted

Test #6:

score: 25
Accepted
time: 2ms
memory: 3436kb

input:

60 98 1 715015339

output:

690737273

result:

ok single line: '690737273'

Test #7:

score: 0
Accepted
time: 3ms
memory: 3528kb

input:

96 97 1 507892589

output:

481151247

result:

ok single line: '481151247'

Test #8:

score: 0
Accepted
time: 2ms
memory: 3680kb

input:

90 95 1 621080027

output:

255353202

result:

ok single line: '255353202'

Test #9:

score: 0
Accepted
time: 3ms
memory: 3412kb

input:

85 94 1 297115421

output:

122254364

result:

ok single line: '122254364'

Test #10:

score: 0
Accepted
time: 2ms
memory: 3560kb

input:

81 91 1 460412027

output:

148037986

result:

ok single line: '148037986'

Subtask #3:

score: 0
Wrong Answer

Test #11:

score: 0
Wrong Answer
time: 1ms
memory: 3584kb

input:

29 29 2 545875273

output:

367665653

result:

wrong answer 1st lines differ - expected: '171843225', found: '367665653'

Subtask #4:

score: 0
Wrong Answer

Test #16:

score: 0
Wrong Answer
time: 1ms
memory: 3416kb

input:

27 30 2 360712453

output:

20673481

result:

wrong answer 1st lines differ - expected: '80987914', found: '20673481'

Subtask #5:

score: 0
Wrong Answer

Test #21:

score: 0
Wrong Answer
time: 1ms
memory: 3476kb

input:

29 38 2 909155077

output:

770599771

result:

wrong answer 1st lines differ - expected: '745973305', found: '770599771'

Subtask #6:

score: 0
Wrong Answer

Test #26:

score: 0
Wrong Answer
time: 1ms
memory: 3496kb

input:

57 66 2 767174999

output:

650134641

result:

wrong answer 1st lines differ - expected: '315351738', found: '650134641'

Subtask #7:

score: 0
Wrong Answer

Test #31:

score: 0
Wrong Answer
time: 0ms
memory: 3524kb

input:

96 96 2 453296971

output:

420184822

result:

wrong answer 1st lines differ - expected: '222864385', found: '420184822'