QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#353723 | #8339. Rooted Tree | arnold518 | AC ✓ | 1416ms | 82052kb | C++17 | 1.2kb | 2024-03-14 15:32:15 | 2024-03-14 15:32:16 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
const int MAXN = 1e7;
const int MOD = 1e9+9;
struct mint
{
int x;
mint() : x(0) {}
mint(int _x) : x(_x) {}
mint operator + (int ot) const { return x+ot>=MOD ? x+ot-MOD : x+ot; }
mint operator - () const { return x ? MOD-x : 0; }
mint operator - (int ot) const { return x<ot ? x+MOD-ot : x-ot; }
mint operator * (int ot) const { return 1ll*x*ot%MOD; }
mint operator += (int ot) { return *this = *this + ot; }
mint operator -= (int ot) { return *this = *this - ot; }
mint operator *= (int ot) { return *this = *this * ot; }
operator int () const { return x; }
};
mint mpow(mint x, ll a)
{
mint ret=1;
while(a)
{
if(a&1) ret*=x;
x=x*x; a>>=1;
}
return ret;
}
mint inv(mint x) { return mpow(x, MOD-2); }
int M, K;
mint dp1[MAXN+10], dp2[MAXN+10];
int main()
{
scanf("%d%d", &M, &K);
for(int i=1; i<=K; i++)
{
mint t=inv((M-1)*(i-1)+1);
dp1[i]=dp1[i-1]+dp1[i-1]*t*(M-1)+M;
dp2[i]=dp2[i-1]+dp1[i-1]*t*M+M;
}
printf("%d\n", (int)dp2[K]);
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 7ms
memory: 82032kb
input:
6 2
output:
18
result:
ok 1 number(s): "18"
Test #2:
score: 0
Accepted
time: 3ms
memory: 81952kb
input:
2 6
output:
600000038
result:
ok 1 number(s): "600000038"
Test #3:
score: 0
Accepted
time: 88ms
memory: 82036kb
input:
83 613210
output:
424200026
result:
ok 1 number(s): "424200026"
Test #4:
score: 0
Accepted
time: 952ms
memory: 82044kb
input:
48 6713156
output:
198541581
result:
ok 1 number(s): "198541581"
Test #5:
score: 0
Accepted
time: 0ms
memory: 82012kb
input:
1 111
output:
6216
result:
ok 1 number(s): "6216"
Test #6:
score: 0
Accepted
time: 1030ms
memory: 81920kb
input:
28 7304152
output:
457266679
result:
ok 1 number(s): "457266679"
Test #7:
score: 0
Accepted
time: 582ms
memory: 81980kb
input:
38 4101162
output:
232117382
result:
ok 1 number(s): "232117382"
Test #8:
score: 0
Accepted
time: 1399ms
memory: 82052kb
input:
51 9921154
output:
340670552
result:
ok 1 number(s): "340670552"
Test #9:
score: 0
Accepted
time: 258ms
memory: 81908kb
input:
79 1801157
output:
620550406
result:
ok 1 number(s): "620550406"
Test #10:
score: 0
Accepted
time: 768ms
memory: 81952kb
input:
22 5417157
output:
457449071
result:
ok 1 number(s): "457449071"
Test #11:
score: 0
Accepted
time: 460ms
memory: 81904kb
input:
25 3210162
output:
36368303
result:
ok 1 number(s): "36368303"
Test #12:
score: 0
Accepted
time: 411ms
memory: 81976kb
input:
67 2919160
output:
935195555
result:
ok 1 number(s): "935195555"
Test #13:
score: 0
Accepted
time: 1223ms
memory: 82004kb
input:
77 8613163
output:
482832472
result:
ok 1 number(s): "482832472"
Test #14:
score: 0
Accepted
time: 1410ms
memory: 81984kb
input:
90 10000000
output:
275581651
result:
ok 1 number(s): "275581651"
Test #15:
score: 0
Accepted
time: 1416ms
memory: 81920kb
input:
99 9999999
output:
126087169
result:
ok 1 number(s): "126087169"
Test #16:
score: 0
Accepted
time: 1412ms
memory: 81916kb
input:
100 10000000
output:
451590067
result:
ok 1 number(s): "451590067"
Extra Test:
score: 0
Extra Test Passed