QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#532964#5661. Multi-Laddersttbchimbu999#WA 131ms3596kbC++142.3kb2024-08-25 15:09:292024-08-25 15:09:30

Judging History

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

  • [2024-08-25 15:09:30]
  • 评测
  • 测评结果:WA
  • 用时:131ms
  • 内存:3596kb
  • [2024-08-25 15:09:29]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
vector<int> f = {1, 682498929, 491101308, 76479948, 723816384, 67347853, 27368307, 625544428, 199888908, 
	888050723, 927880474, 281863274, 661224977, 623534362, 970055531, 261384175, 195888993, 66404266, 547665832, 
	109838563, 933245637, 724691727, 368925948, 268838846, 136026497, 112390913, 135498044, 217544623, 419363534, 
	500780548, 668123525, 128487469, 30977140, 522049725, 309058615, 386027524, 189239124, 148528617, 940567523, 
	917084264, 429277690, 996164327, 358655417, 568392357, 780072518, 462639908, 275105629, 909210595, 99199382, 
	703397904, 733333339, 97830135, 608823837, 256141983, 141827977, 696628828, 637939935, 811575797, 848924691, 
	131772368, 724464507, 272814771, 326159309, 456152084, 903466878, 92255682, 769795511, 373745190, 606241871, 
	825871994, 957939114, 435887178, 852304035, 663307737, 375297772, 217598709, 624148346, 671734977, 624500515, 
	748510389, 203191898, 423951674, 629786193, 672850561, 814362881, 823845496, 116667533, 256473217, 627655552, 
	245795606, 586445753, 172114298, 193781724, 778983779, 83868974, 315103615, 965785236, 492741665, 377329025, 
	847549272, 698611116};
const int M = 1e9 + 7;
const int D = 1e7;
int fact(int n) {
	int cur = 0, pos = 0, ans = 0;
	for (int i = 0; i < (int)f.size(); ++i) {
		if (cur <= n) {
			pos = cur;
			ans = f[i];
		}
		cur += D;
	}
	for (int i = pos + 1; i <= n; ++i) {
		ans = 1LL * ans * i % M;
	}
	return ans;
}
int fpow(int a, long long b, int M) {
	int ans = 1;
	while (b) {
		if (b & 1) ans = 1LL * ans * a % M;
		a = 1LL * a * a % M;
		b >>= 1;
	}
	return ans;
}
void solve() {
	int n, k, l;
	cin >> n >> k >> l;
	if (l < k) {
		cout << 0 << '\n';
		return;
	}
	int ans = 1LL * fact(l) * fpow(fact(l - k), M - 2, M) % M;
	int tmp = fpow((1LL * (k - 1) * (k - 1) - k + 2) % M, 1LL * (n - 1) * k, M);
	ans = 1LL * ans * tmp % M;
	cout << ans << '\n';
}
signed main() {
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    #ifdef LOCAL
	    // freopen("TEST.inp", "r", stdin);
	    // freopen("TEST.out", "w", stdout);
    #else
    	// freopen("TEST.inp", "r", stdin);
    	// freopen("TEST.out", "w", stdout);
    #endif
	int L;
	cin >> L;
	while (L--) {
		solve();
	}
    return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 0ms
memory: 3592kb

input:

1
2 3 3

output:

162

result:

ok single line: '162'

Test #2:

score: -100
Wrong Answer
time: 131ms
memory: 3596kb

input:

20
2 3 3
1 3 3
10 3 0
10 3 2
1 21 2
1 22 0
2000 15000 2000
12000 30000 200000
1000000000 3 3
2 1000000000 3
2 3 100000000
1000000000 1000000000 10
1000000000 3 100000000
2 1000000000 100000000
1 1000000000 10
1 1000000000 100000000
1 1000 100000000
1000000000 1000000000 0
1000000000 1000000000 1
100...

output:

162
6
0
0
0
0
0
367618319
52489881
0
392999916
0
868391675
0
0
0
223700847
0
0
0

result:

wrong answer 7th lines differ - expected: '349400141', found: '0'