题意给一可重集 S SS 及质数 p pp问能从集合中选出多少种本质不同的三元组 x y z x ≤ y ≤ z xyz xleq yleq zxyz x≤y≤z 使得 x y z ≡ 1 m o d p xyzequiv 1pmod pxyz≡1modp?∣ S ∣ ≤ 2333 p ≤ 2 30 Sleq 2333pleq 2^30∣S∣≤2333p≤2 30 70 解保
这份代码中的if(j&&a[j-1]==a[j])continue;是为了避免重复计算相同的三元组。在内层循环中,对于任意的i,我们只需要枚举不等于i的j来计算三元组。因此,当j等于i时,我们需要跳过,而当j等于i+1时,我们可以继续计算。因此,if(j&&a[j-1]==a[j])continue;是正确的。而if(j>i+1&&a[j-1]==a[j])continue;则是不必要的,因为对于任意的i,j的初始值都是i+1,即j>i+1。
原文地址: https://www.cveoy.top/t/topic/iBxN 著作权归作者所有。请勿转载和采集!