QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#618721#7003. Rikka with Minimum Spanning Treesship2077AC ✓899ms5440kbC++23853b2024-10-07 08:52:362024-10-07 08:52:36

Judging History

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

  • [2024-10-07 08:52:36]
  • 评测
  • 测评结果:AC
  • 用时:899ms
  • 内存:5440kb
  • [2024-10-07 08:52:36]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;
constexpr int M=1e5+5,mod=1e9+7;
vector<tuple<ull,int,int>>edge;
int T,n,m,cnt,f[M];ull k1,k2,ans;
ull rnd(){
    ull k3=k1,k4=k2;
    k1=k4;k3^=k3<<23;
    k2=k3^k4^(k3>>17)^(k4>>26);
    return k2+k4;
}
int find(int x){return f[x]==x?x:f[x]=find(f[x]);}
void solve(){ edge.clear();ans=cnt=0;
    scanf("%d%d%llu%llu",&n,&m,&k1,&k2);
    for (int i=1;i<=m;i++){
        int u=rnd()%n+1,v=rnd()%n+1;
        edge.emplace_back(rnd(),u,v);
    }
    sort(edge.begin(),edge.end());
    for (int i=1;i<=n;i++) f[i]=i;
    for (auto [z,x,y]:edge){
        int fx=find(x),fy=find(y);
        if (fx==fy) continue;
        f[fx]=fy;ans+=z%mod;cnt++;
    }
    printf("%llu\n",cnt==n-1?ans%mod:0);
}
int main(){scanf("%d",&T);while (T--) solve();return 0;}

这程序好像有点Bug,我给组数据试试?

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 7ms
memory: 5376kb

input:

1
2 100000 123456789 987654321

output:

575673759

result:

ok single line: '575673759'

Test #2:

score: 0
Accepted
time: 899ms
memory: 5440kb

input:

100
17085 100000 676466090490 878574984049
24353 100000 685976930882 229685257786
4 100000 471961964055 157860429766
15406 100000 410376133349 828755231175
1 100000 809050431491 785471826497
1796 100000 218311747353 410830725634
93449 100000 761721499751 355474414706
3214 100000 277812617111 2429646...

output:

436638303
0
405150678
355979925
0
50713419
0
512195596
338362921
0
0
289558312
831627251
345103943
788519192
306890280
168133083
308823048
813378518
25758919
733644946
851485656
0
0
0
315609167
632805182
745061180
0
995073785
854970966
0
0
0
423134815
0
867689881
500810440
0
0
0
945701987
0
0
0
1959...

result:

ok 100 lines