当转移时,尝试让它10%概率不转移。
while(T--){
NOIP=NTT=0,random_shuffle(rp+1,rp+n+1);
for(int i=0;i<n+1;i++)rd[i]=0,CCF[i]=1e18;
for(int i=1;i<=n;i++){
for(int j=(i>1);j<i;j++){
long long ls=1ll*mp[rp[i]][rp[j]]*rd[rp[j]];
IOI=rand()%1000;
if(IOI<100)continue;
if(ls<CCF[rp[i]])CCF[rp[i]]=ls,rd[rp[i]]=rd[rp[j]]+1;
else if(CCF[rp[i]]==ls&&rd[rp[i]]>rd[rp[j]])rd[rp[i]]=rd[rp[j]]+1;
}
if(CCF[rp[i]]<1e18)NTT+=CCF[rp[i]],NOIP++;
}
if(NOIP>NOI)NOI=NOIP,ans=NTT;
else if(NOIP==NOI)ans=min(ans,NTT);
}