建议使用 time(0) 作为种子,使你的评测都用同样的种子,例:std::mt19937_64 rd(time(0));
time(0)
std::mt19937_64 rd(time(0));
不要使用 __uint128_t !!! 巨慢
__uint128_t
使用快速乘,inline ll qmu(ll a,ll b,ll p){return (a*b-(ll)((__float128)a/p*b)*p+p)%p;}
inline ll qmu(ll a,ll b,ll p){return (a*b-(ll)((__float128)a/p*b)*p+p)%p;}
综上满足的代码不写挂 ≤5\le 5≤5 次应该就能过