QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#112890#5749. Directed Vertex CactiLWLAymhAC ✓13ms3156kbC++141.6kb2023-06-15 08:33:032023-06-15 08:33:06

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-06-15 08:33:06]
  • 评测
  • 测评结果:AC
  • 用时:13ms
  • 内存:3156kb
  • [2023-06-15 08:33:03]
  • 提交

answer

#include<algorithm>
#include<cstring>
#include<cstdio>
#define ll long long
const ll mod=1e9+9;
struct FastMod
{
	using ull=unsigned long long;
	using L=__int128;
	ull b,m;
	FastMod(ull b):b(b),m(ull((L(1)<<64)/b)){}
	ull reduce(ull a)// return a mod b
	{
		ull q=(ull)((L(m)*a)>>64),r=a-q*b;
		return r>=b?r-b:r;
	}
}F(mod);
inline ll mpow(ll x,ll k){
    ll ans=1;
    for(;k;k=k>>1,x=F.reduce(x*x)){
        if(k&1)ans=F.reduce(ans*x);
    }
    return ans;
}
namespace FastIO
{
	const int SIZE=(1<<21)+1;
	char ibuf[SIZE],obuf[SIZE],*iS,*iT,*oS=obuf,*oT=obuf;
	char* flush(){fwrite(obuf,1,oT-oS,stdout);return oT=obuf;}
	struct Flusher{~Flusher(){flush();}}flusher;
	inline char gc(){return iS==iT && (iT=(iS=ibuf)+fread(ibuf,1,SIZE,stdin),iS==iT)?EOF:*iS++;}
	inline void pc(char c){if(oT==oS+SIZE) flush();*oT++=c;}
	template<typename T=int>
	T read(){T x=0;char ch=gc();for(;ch<'0' || ch>'9';ch=gc());for(;ch>='0' && ch<='9';ch=gc()) x=x*10+(ch-'0');return x;}
	template<typename T>
	void write(T x){if(x>=10) write(x/10);pc(x%10+'0');}
}
using FastIO::gc;
using FastIO::pc;
using FastIO::read;
using FastIO::write;
int n,m;
inline ll get_fac(int n){
    ll ans=1;
    for(int i=1;i<=n;++i)ans=F.reduce(ans*i);
    return ans;
}
inline ll get_C(ll n,int m){
    n%=mod;
    ll ans=1;
    for(int i=0;i<m;++i){
        ans=F.reduce(ans*(n-i));
    }
    return F.reduce(mpow(get_fac(m),mod-2)*ans);
}
int main(){
    // freopen("graph.in","r",stdin);
    // freopen("graph.out","w",stdout);
    scanf("%d%d",&n,&m);
    printf("%lld\n",F.reduce(get_fac(n)*get_C((1ll*n*(n-1))>>1,m))%mod);
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3036kb

input:

3 1

output:

18

result:

ok 1 number(s): "18"

Test #2:

score: 0
Accepted
time: 1ms
memory: 3092kb

input:

4 4

output:

360

result:

ok 1 number(s): "360"

Test #3:

score: 0
Accepted
time: 4ms
memory: 3152kb

input:

39847 348708

output:

983575456

result:

ok 1 number(s): "983575456"

Test #4:

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

input:

1 1

output:

0

result:

ok 1 number(s): "0"

Test #5:

score: 0
Accepted
time: 1ms
memory: 3148kb

input:

3 2

output:

18

result:

ok 1 number(s): "18"

Test #6:

score: 0
Accepted
time: 1ms
memory: 3104kb

input:

3 3

output:

6

result:

ok 1 number(s): "6"

Test #7:

score: 0
Accepted
time: 1ms
memory: 2992kb

input:

3 4

output:

0

result:

ok 1 number(s): "0"

Test #8:

score: 0
Accepted
time: 9ms
memory: 3144kb

input:

3 1000000

output:

0

result:

ok 1 number(s): "0"

Test #9:

score: 0
Accepted
time: 1ms
memory: 3148kb

input:

4 1

output:

144

result:

ok 1 number(s): "144"

Test #10:

score: 0
Accepted
time: 1ms
memory: 3032kb

input:

4 2

output:

360

result:

ok 1 number(s): "360"

Test #11:

score: 0
Accepted
time: 1ms
memory: 3116kb

input:

4 3

output:

480

result:

ok 1 number(s): "480"

Test #12:

score: 0
Accepted
time: 1ms
memory: 3040kb

input:

4 5

output:

144

result:

ok 1 number(s): "144"

Test #13:

score: 0
Accepted
time: 1ms
memory: 3112kb

input:

4 6

output:

24

result:

ok 1 number(s): "24"

Test #14:

score: 0
Accepted
time: 1ms
memory: 3152kb

input:

5 1

output:

1200

result:

ok 1 number(s): "1200"

Test #15:

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

input:

5 2

output:

5400

result:

ok 1 number(s): "5400"

Test #16:

score: 0
Accepted
time: 1ms
memory: 3112kb

input:

5 3

output:

14400

result:

ok 1 number(s): "14400"

Test #17:

score: 0
Accepted
time: 1ms
memory: 3040kb

input:

5 4

output:

25200

result:

ok 1 number(s): "25200"

Test #18:

score: 0
Accepted
time: 1ms
memory: 3044kb

input:

5 5

output:

30240

result:

ok 1 number(s): "30240"

Test #19:

score: 0
Accepted
time: 1ms
memory: 3032kb

input:

5 6

output:

25200

result:

ok 1 number(s): "25200"

Test #20:

score: 0
Accepted
time: 1ms
memory: 3144kb

input:

5 7

output:

14400

result:

ok 1 number(s): "14400"

Test #21:

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

input:

5 8

output:

5400

result:

ok 1 number(s): "5400"

Test #22:

score: 0
Accepted
time: 1ms
memory: 3144kb

input:

5 9

output:

1200

result:

ok 1 number(s): "1200"

Test #23:

score: 0
Accepted
time: 1ms
memory: 3028kb

input:

5 10

output:

120

result:

ok 1 number(s): "120"

Test #24:

score: 0
Accepted
time: 1ms
memory: 3140kb

input:

1000 1

output:

533396879

result:

ok 1 number(s): "533396879"

Test #25:

score: 0
Accepted
time: 1ms
memory: 3044kb

input:

1000 100

output:

199484478

result:

ok 1 number(s): "199484478"

Test #26:

score: 0
Accepted
time: 1ms
memory: 3040kb

input:

1000 10000

output:

656650652

result:

ok 1 number(s): "656650652"

Test #27:

score: 0
Accepted
time: 8ms
memory: 3152kb

input:

1000 1000000

output:

0

result:

ok 1 number(s): "0"

Test #28:

score: 0
Accepted
time: 5ms
memory: 3032kb

input:

535164 619302

output:

721871396

result:

ok 1 number(s): "721871396"

Test #29:

score: 0
Accepted
time: 13ms
memory: 3040kb

input:

1000000 1000000

output:

580712335

result:

ok 1 number(s): "580712335"

Test #30:

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

input:

1000000 234534

output:

546630669

result:

ok 1 number(s): "546630669"

Test #31:

score: 0
Accepted
time: 9ms
memory: 3156kb

input:

234523 1000000

output:

127869098

result:

ok 1 number(s): "127869098"

Test #32:

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

input:

44722 10000

output:

0

result:

ok 1 number(s): "0"