QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#208579#5749. Directed Vertex Cactixia_mcAC ✓261ms236024kbC++14838b2023-10-09 19:03:302023-10-09 19:03:31

Judging History

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

  • [2023-10-09 19:03:31]
  • 评测
  • 测评结果:AC
  • 用时:261ms
  • 内存:236024kb
  • [2023-10-09 19:03:30]
  • 提交

answer

#include<stdio.h>

#define int long long 

const int N=3e7+5,mod=1e9+9;
int ksm(int x,int y){
	int s=1;
	while(y){
		if(y&1) (s*=x%mod)%=mod;
		(x*=x%mod)%=mod;y>>=1;
	}
	return s;
}
int fac[N];
int fact(int x){
	if(x<=3e7) return fac[x];
	int s=fac[(int)3e7];
	for(int i=3e7+1;i<=x;i++) (s*=i%mod)%=mod;
	return s;
}
int inv(int x){return ksm(x,mod-2);}
void init(){fac[0]=1;for(int i=1;i<=3e7;i++) fac[i]=fac[i-1]*i%mod;}
int C(int n,int m){
	int s=1;
	for(int i=1;i<=m;i++) (s*=(n-m+i)*inv(i)%mod)%=mod;
	return s;
	// return fact(n)*inv(fact(n-m))%mod*(inv(fact(m)))%mod;
}
int lucas(int n,int m){
	if(m==0) return 1;
	return C(n%mod,m%mod)%mod*lucas(n/mod,m/mod)%mod;
}
int n,m;
signed main(){
	init();
	scanf("%lld%lld",&n,&m);
	
	printf("%lld\n",fact(n)*lucas(lucas(n,2),m)%mod);
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 140ms
memory: 235984kb

input:

3 1

output:

18

result:

ok 1 number(s): "18"

Test #2:

score: 0
Accepted
time: 127ms
memory: 236024kb

input:

4 4

output:

360

result:

ok 1 number(s): "360"

Test #3:

score: 0
Accepted
time: 180ms
memory: 235900kb

input:

39847 348708

output:

983575456

result:

ok 1 number(s): "983575456"

Test #4:

score: 0
Accepted
time: 128ms
memory: 235904kb

input:

1 1

output:

0

result:

ok 1 number(s): "0"

Test #5:

score: 0
Accepted
time: 123ms
memory: 236008kb

input:

3 2

output:

18

result:

ok 1 number(s): "18"

Test #6:

score: 0
Accepted
time: 133ms
memory: 235916kb

input:

3 3

output:

6

result:

ok 1 number(s): "6"

Test #7:

score: 0
Accepted
time: 118ms
memory: 235976kb

input:

3 4

output:

0

result:

ok 1 number(s): "0"

Test #8:

score: 0
Accepted
time: 242ms
memory: 235980kb

input:

3 1000000

output:

0

result:

ok 1 number(s): "0"

Test #9:

score: 0
Accepted
time: 135ms
memory: 235988kb

input:

4 1

output:

144

result:

ok 1 number(s): "144"

Test #10:

score: 0
Accepted
time: 117ms
memory: 235996kb

input:

4 2

output:

360

result:

ok 1 number(s): "360"

Test #11:

score: 0
Accepted
time: 130ms
memory: 236012kb

input:

4 3

output:

480

result:

ok 1 number(s): "480"

Test #12:

score: 0
Accepted
time: 156ms
memory: 235960kb

input:

4 5

output:

144

result:

ok 1 number(s): "144"

Test #13:

score: 0
Accepted
time: 128ms
memory: 236008kb

input:

4 6

output:

24

result:

ok 1 number(s): "24"

Test #14:

score: 0
Accepted
time: 128ms
memory: 236016kb

input:

5 1

output:

1200

result:

ok 1 number(s): "1200"

Test #15:

score: 0
Accepted
time: 128ms
memory: 235904kb

input:

5 2

output:

5400

result:

ok 1 number(s): "5400"

Test #16:

score: 0
Accepted
time: 124ms
memory: 235952kb

input:

5 3

output:

14400

result:

ok 1 number(s): "14400"

Test #17:

score: 0
Accepted
time: 124ms
memory: 235976kb

input:

5 4

output:

25200

result:

ok 1 number(s): "25200"

Test #18:

score: 0
Accepted
time: 114ms
memory: 235996kb

input:

5 5

output:

30240

result:

ok 1 number(s): "30240"

Test #19:

score: 0
Accepted
time: 122ms
memory: 235912kb

input:

5 6

output:

25200

result:

ok 1 number(s): "25200"

Test #20:

score: 0
Accepted
time: 124ms
memory: 235912kb

input:

5 7

output:

14400

result:

ok 1 number(s): "14400"

Test #21:

score: 0
Accepted
time: 120ms
memory: 235964kb

input:

5 8

output:

5400

result:

ok 1 number(s): "5400"

Test #22:

score: 0
Accepted
time: 133ms
memory: 235944kb

input:

5 9

output:

1200

result:

ok 1 number(s): "1200"

Test #23:

score: 0
Accepted
time: 138ms
memory: 235968kb

input:

5 10

output:

120

result:

ok 1 number(s): "120"

Test #24:

score: 0
Accepted
time: 124ms
memory: 235996kb

input:

1000 1

output:

533396879

result:

ok 1 number(s): "533396879"

Test #25:

score: 0
Accepted
time: 108ms
memory: 235968kb

input:

1000 100

output:

199484478

result:

ok 1 number(s): "199484478"

Test #26:

score: 0
Accepted
time: 114ms
memory: 235912kb

input:

1000 10000

output:

656650652

result:

ok 1 number(s): "656650652"

Test #27:

score: 0
Accepted
time: 249ms
memory: 236004kb

input:

1000 1000000

output:

0

result:

ok 1 number(s): "0"

Test #28:

score: 0
Accepted
time: 214ms
memory: 235908kb

input:

535164 619302

output:

721871396

result:

ok 1 number(s): "721871396"

Test #29:

score: 0
Accepted
time: 234ms
memory: 236008kb

input:

1000000 1000000

output:

580712335

result:

ok 1 number(s): "580712335"

Test #30:

score: 0
Accepted
time: 151ms
memory: 235980kb

input:

1000000 234534

output:

546630669

result:

ok 1 number(s): "546630669"

Test #31:

score: 0
Accepted
time: 261ms
memory: 235908kb

input:

234523 1000000

output:

127869098

result:

ok 1 number(s): "127869098"

Test #32:

score: 0
Accepted
time: 127ms
memory: 235976kb

input:

44722 10000

output:

0

result:

ok 1 number(s): "0"