QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#765864 | #9254. Random Variables | piggy123 | AC ✓ | 736ms | 17492kb | C++17 | 3.9kb | 2024-11-20 15:28:01 | 2024-11-20 15:28:05 |
Judging History
answer
#include <bits/stdc++.h>
#define ll long long
#pragma GCC optimize(2,3,"Ofast","unroll-loops")
using namespace std;
ll C[1005][1005],C2[1005],inv[1005],pw[1005],dp[1005][1005],MM;
const ll N=1000;
struct Mod {
ll m, p;
void init(int pp) {
m = ((__int128)1 << 64) / pp;
p = pp;
}
ll operator ()(ll x) {
return x - ((__int128(x) * m) >> 64) * p;
}
} mod;
int main() {
cin.tie(0);
cout.tie(0);
ios::sync_with_stdio(false);
ll T;
cin >> T >> MM;
mod.init(MM);
C[0][0]=1;
for (ll i=1; i<=N; i++) {
C[i][0]=1;
for (ll j=1; j<=N; j++) {
C[i][j]=mod(C[i-1][j]+C[i-1][j-1]);
}
}
while (T--) {
ll n,m;
cin >> n >> m;
C2[0]=1;
vector<ll> vct;
for (ll i=1; i<=n; i++) {
vct.push_back(m-i+1);
ll z=i;
for (ll &j:vct) {
if (z==1)break;
ll g=__gcd(j,z);
j/=g,z/=g;
}
C2[i]=1;
for (ll j:vct)C2[i]*=j,C2[i]=mod(C2[i]);
}
ll ans=0;
for (ll i=1; i<=n; i++) {
dp[0][0]=1;
for(ll j=0; j<=min(n/(i+1),m); j++) {
pw[0]=1;
for (ll k=1; k<=n; k++) {
pw[k]=mod(pw[k-1]*(m-j));
dp[j][k]=mod(mod(dp[j][k-1]*j)+mod(k>=i+1&&j?mod(dp[j-1][k-i-1]*C[k-1][i])*j:0));
}
ll sm=0;
for (ll k=0; k<=n; k++) {
sm+=mod(mod(dp[j][k]*C[n][k])*pw[n-k]);
if (sm>=MM)sm-=MM;
}
if (j&1) {
ans-=mod(sm*C2[j]);
if (ans<0)ans+=MM;
} else {
ans+=mod(sm*C2[j]);
if (ans>=MM)ans-=MM;
}
// cout<<"!"<<sm<< endl;
}
// cout<< ans<<"\n";
}
pw[0]=1;
for (ll i=1; i<=n; i++)pw[i]=mod(pw[i-1]*m);
cout<< abs(mod(mod((n+1)*pw[n])-ans+MM)%MM)<<"\n";
}
return 0;
}
/*
■■■■■ ■■ ■■■ ■■■ ■ ■ ■ ■■■■ ■■■■
■ ■■ ■■ ■ ■■ ■ ■■ ■ ■ ■■ ■ ■■ ■■ ■
■ ■ ■■ ■ ■ ■ ■ ■ ■ ■■■ ■■ ■■ ■ ■■
■ ■ ■■ ■ ■ ■ ■ ■ ■ ■■ ■ ■■ ■■
■ ■ ■■ ■ ■ ■■ ■■ ■■ ■
■ ■■ ■■ ■ ■■■ ■ ■■■ ■■ ■■ ■■ ■■■
■■■■■ ■■ ■ ■ ■ ■ ■■ ■■ ■■ ■■
■ ■■ ■ ■ ■ ■ ■■ ■■ ■■ ■
■ ■■ ■ ■ ■ ■ ■■ ■■ ■ ■ ■■
■ ■■ ■■ ■■ ■■ ■■ ■■ ■■ ■ ■■ ■■
■ ■■ ■■■■ ■■■■ ■■ ■■ ■■■■■■ ■■■■
*/
这程序好像有点Bug,我给组数据试试?
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 3ms
memory: 13252kb
input:
3 123456789 3 2 5 5 7 7
output:
18 7145 2066323
result:
ok 3 lines
Test #2:
score: 0
Accepted
time: 0ms
memory: 12572kb
input:
100 2 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 3 10 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 5 10 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 6 10 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 7 10 8 1 8 2...
output:
1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0
result:
ok 100 lines
Test #3:
score: 0
Accepted
time: 2ms
memory: 11864kb
input:
100 3 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 3 10 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 5 10 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 6 10 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 7 10 8 1 8 2...
output:
1 2 0 1 2 0 1 2 0 1 2 0 0 2 0 0 2 0 0 2 0 0 0 0 0 0 0 0 0 0 1 2 0 1 2 0 1 2 0 1 2 2 0 2 2 0 2 2 0 2 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 2 2 0 2 2 0 2 2 0 2 0 0 0 0 0 0 0 0 0 0 1 2 0 1 2 0 1 2 0 1
result:
ok 100 lines
Test #4:
score: 0
Accepted
time: 2ms
memory: 11972kb
input:
100 4 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 3 10 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 5 10 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 6 10 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 7 10 8 1 8 2...
output:
1 2 3 0 1 2 3 0 1 2 2 2 0 0 2 2 0 0 2 2 3 2 3 0 3 2 3 0 3 2 0 0 0 0 0 0 0 0 0 0 1 2 3 0 1 2 3 0 1 2 2 0 2 0 2 0 2 0 2 0 3 0 3 0 3 0 3 0 3 0 0 0 0 0 0 0 0 0 0 0 1 2 3 0 1 2 3 0 1 2 2 0 2 0 2 0 2 0 2 0
result:
ok 100 lines
Test #5:
score: 0
Accepted
time: 2ms
memory: 11916kb
input:
100 5 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 3 10 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 5 10 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 6 10 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 7 10 8 1 8 2...
output:
1 2 3 4 0 1 2 3 4 0 2 1 2 0 0 2 1 2 0 0 3 3 1 3 0 3 3 1 3 0 4 4 2 4 0 4 4 2 4 0 0 0 0 0 0 0 0 0 0 0 1 2 3 4 0 1 2 3 4 0 2 3 3 2 0 2 3 3 2 0 3 4 1 2 0 3 4 1 2 0 4 4 4 4 0 4 4 4 4 0 0 0 0 0 0 0 0 0 0 0
result:
ok 100 lines
Test #6:
score: 0
Accepted
time: 0ms
memory: 12356kb
input:
100 6 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 3 10 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 5 10 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 6 10 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 7 10 8 1 8 2...
output:
1 2 3 4 5 0 1 2 3 4 2 0 0 2 0 0 2 0 0 2 3 0 3 0 3 0 3 0 3 0 4 2 0 4 2 0 4 2 0 4 5 2 3 2 5 0 5 2 3 2 0 0 0 0 0 0 0 0 0 0 1 0 3 4 3 0 1 0 3 4 2 2 0 2 2 0 2 2 0 2 3 0 3 0 3 0 3 0 3 0 4 2 0 4 2 0 4 2 0 4
result:
ok 100 lines
Test #7:
score: 0
Accepted
time: 0ms
memory: 11924kb
input:
100 7 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 3 10 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 5 10 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 6 10 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 7 10 8 1 8 2...
output:
1 2 3 4 5 6 0 1 2 3 2 6 5 6 2 0 0 2 6 5 3 4 2 3 6 3 0 3 4 2 4 2 3 5 2 5 0 4 2 3 5 5 3 6 5 4 0 5 5 3 6 0 6 1 1 6 0 6 0 6 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 0 1 2 3 2 1 4 4 1 2 0 2 1 4 3 3 4 3 4 4 0 3 3 4
result:
ok 100 lines
Test #8:
score: 0
Accepted
time: 0ms
memory: 13500kb
input:
100 8 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 3 10 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 5 10 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 6 10 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 7 10 8 1 8 2...
output:
1 2 3 4 5 6 7 0 1 2 2 6 4 4 6 2 0 0 2 6 3 2 3 4 3 6 3 0 3 2 4 4 0 0 4 4 0 0 4 4 5 6 3 4 1 2 7 0 5 6 6 4 6 0 6 4 6 0 6 4 7 4 3 0 7 4 3 0 7 4 0 0 0 0 0 0 0 0 0 0 1 6 3 4 5 2 7 0 1 6 2 4 6 0 2 4 6 0 2 4
result:
ok 100 lines
Test #9:
score: 0
Accepted
time: 2ms
memory: 13040kb
input:
100 9 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 3 10 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 5 10 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 6 10 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 7 10 8 1 8 2...
output:
1 2 3 4 5 6 7 8 0 1 2 6 3 2 3 6 2 0 0 2 3 0 6 0 6 3 6 3 0 3 4 8 3 4 5 6 4 2 0 4 5 2 0 2 8 0 8 5 0 5 6 0 0 6 0 0 6 0 0 6 7 3 6 1 3 3 4 3 0 7 8 8 6 5 8 3 2 8 0 8 0 0 0 0 0 0 0 0 0 0 1 8 3 4 2 6 7 5 0 1
result:
ok 100 lines
Test #10:
score: 0
Accepted
time: 2ms
memory: 12332kb
input:
100 10 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 3 10 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 5 10 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 6 10 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 7 10 8 1 8 ...
output:
1 2 3 4 5 6 7 8 9 0 2 6 2 0 0 2 6 2 0 0 3 8 1 8 5 8 3 6 3 0 4 4 2 4 0 4 4 2 4 0 5 0 5 0 5 0 5 0 5 0 6 2 8 4 0 6 2 8 4 0 7 8 3 2 5 2 3 8 7 0 8 4 6 2 0 8 4 6 2 0 9 4 9 4 5 4 9 4 9 0 0 0 0 0 0 0 0 0 0 0
result:
ok 100 lines
Test #11:
score: 0
Accepted
time: 3ms
memory: 11844kb
input:
100 11 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 3 10 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 5 10 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 6 10 7 1 7 2 7 3 7 4 7 5 7 6 7 7 7 8 7 9 7 10 8 1 8 ...
output:
1 2 3 4 5 6 7 8 9 10 2 6 1 9 8 9 1 6 2 0 3 7 7 9 8 10 10 3 6 3 4 0 5 5 10 10 8 9 9 6 5 0 4 10 6 7 10 4 2 7 6 10 4 5 3 2 0 7 2 5 7 5 2 8 6 1 6 0 3 6 8 6 6 3 2 4 8 3 6 9 9 8 10 2 8 6 10 9 3 1 10 0 4 3 0 6 0 7 4 9
result:
ok 100 lines
Test #12:
score: 0
Accepted
time: 276ms
memory: 17320kb
input:
10 972033073 576 523187654 758 588616188 30 532959085 476 481773028 573 76725430 520 142462406 865 820120297 687 526533288 913 38106557 67 924529654
output:
259748390 909910217 708973357 300073565 463921261 889897372 587262932 255642402 868975954 14589849
result:
ok 10 lines
Test #13:
score: 0
Accepted
time: 357ms
memory: 17132kb
input:
10 922366485 846 278501607 683 609355362 44 978777279 545 730718412 926 323835432 883 761846029 623 408215612 989 588832935 449 743830620 259 183431187
output:
461786112 672633342 164805246 547995105 9661617 154501063 370848893 402005970 886523490 435107511
result:
ok 10 lines
Test #14:
score: 0
Accepted
time: 347ms
memory: 17492kb
input:
10 13890975 949 837425969 667 981449995 991 564074312 501 604745038 593 640307170 128 408163542 80 976891742 930 710947599 852 333118419 250 333252788
output:
3898759 9290500 7087084 4913904 196250 1746549 9627740 8673120 10274253 10549775
result:
ok 10 lines
Test #15:
score: 0
Accepted
time: 181ms
memory: 17196kb
input:
10 105576445 649 937885257 141 713063090 253 716966251 845 330657011 347 664392407 810 50478969 389 530582574 228 199722046 85 256258366 605 3721959
output:
22721419 27962190 85541228 53950260 35288938 100176945 86409840 102331663 55591445 14790745
result:
ok 10 lines
Test #16:
score: 0
Accepted
time: 242ms
memory: 17148kb
input:
10 445185474 268 687201814 929 296077349 690 202741564 372 661889855 442 989604795 367 456833096 702 862601129 795 37538865 556 131444040 108 645857776
output:
39577672 390323147 423333756 49417686 12978114 278291170 60346062 410583855 68429394 296833176
result:
ok 10 lines
Test #17:
score: 0
Accepted
time: 339ms
memory: 17168kb
input:
10 265384486 870 503808438 959 733458117 126 226376632 979 205878607 747 270352323 339 384431347 373 659485098 597 832514575 832 906898547 12 869891031
output:
54820154 83262107 48675762 32938269 169458409 153632065 105152812 48645927 29870948 83831862
result:
ok 10 lines
Test #18:
score: 0
Accepted
time: 230ms
memory: 17432kb
input:
10 869896294 256 326197921 496 115501273 861 238744067 581 600444623 619 536213251 89 898877607 136 353575223 860 349472278 491 770026371 668 622723560
output:
678111040 344947200 90686837 157367547 295943299 25262829 81930384 532341712 23048077 475131428
result:
ok 10 lines
Test #19:
score: 0
Accepted
time: 415ms
memory: 17212kb
input:
10 692092859 831 647975618 792 737778459 392 768554014 854 612888229 31 148093584 793 559010229 970 237393805 339 914914862 831 979073722 988 738224088
output:
324659472 16793498 421391172 416475848 59704753 347151224 415078841 680610884 397373492 296521551
result:
ok 10 lines
Test #20:
score: 0
Accepted
time: 186ms
memory: 17144kb
input:
10 827165684 577 720722656 383 778750361 951 59165685 502 993162103 589 166261195 500 816688874 40 625075150 331 160531509 394 578798823 181 710984062
output:
736529364 199088527 528654835 586634074 442300715 383600380 707706396 763397655 534310310 338272096
result:
ok 10 lines
Test #21:
score: 0
Accepted
time: 185ms
memory: 17148kb
input:
10 691312083 185 445519030 93 44970277 951 662144708 252 766000017 83 911805458 424 816227326 770 136026896 354 763387805 247 458147285 747 14566368
output:
411209183 132362175 110569626 664410537 241484162 480388660 264805387 294178848 147876955 371900799
result:
ok 10 lines
Test #22:
score: 0
Accepted
time: 736ms
memory: 17144kb
input:
10 691312083 1000 445519030 1000 44970277 1000 662144708 1000 766000017 1000 911805458 1000 816227326 1000 136026896 1000 763387805 1000 458147285 747 14566368
output:
365043118 14826361 571573673 63977538 484010015 499398766 433242788 43269113 412491407 371900799
result:
ok 10 lines
Extra Test:
score: 0
Extra Test Passed