AC代码
for(int i=2;i<=b-1;i++) {
if(!ss[i]) {
for(int j=i*2;j<=b;j+=i) {
ss[j]=1;
if(i>=p&&j>=a) {
join(j,i);
}
}
}
}
30pts代码
for(int i=2;i<=a;i++) {
if(!ss[i]) {
for(int j=i*2;j<=b;j+=i) {
ss[j]=1;
if(i>=p&&j+i<=b&&find(j+i)!=find(j)) {
join(j,j+i);
}
}
}
}
两份代码只有合并条件和合并对象略有不同,为何分数差异巨大,而且我看有份题解的写法也跟我30分代码的写法差不多,蒟蒻真的搞不明白