void init(int n){ int i,j; For(i,1,n){ For(j,1,n){ if(i*j>n) break; p[i*j].push_back(i); } } }
这份代码在 n=1e6 数据范围下 TLE 1s。
n=1e6
但是把 p[i*j].push_back(i); 替换成 cnt++ 返回 cnt 就只跑了几十ms。
p[i*j].push_back(i);
cnt++
是 vector 常数如此之大?