O(n*sqrt(n)*log(n*sqrt(n))水过去了
查看原帖
O(n*sqrt(n)*log(n*sqrt(n))水过去了
1074084
asd890123楼主2024/5/28 17:34
#include <cstdio>
#include <vector>
#include <algorithm>

int main(){
    
    std::vector <int> vec;
    int n,tmp,lst,cnt = 1;
    
    scanf("%d",&n);
    for (int i = n;i;i--){
        
        tmp = i;
        for (int j = 2;j * j <= tmp;j++)
            while (tmp % j == 0) 
                tmp /= j,vec.push_back(j);
        if (tmp != 1) vec.push_back(tmp);
        
    }
    std::sort(vec.begin(),vec.end());
    lst = vec[0];
    vec.push_back(-1);
    for (int i = 1;i < vec.size();i++){
        
        if (vec[i] != lst) printf("%d %d\n",lst,cnt),cnt = 1,lst = vec[i];
        else cnt++;
        
    }
    
    return 0;
}

运算量级超1e11竟然好能过(最长604 ms),求加强数据。

2024/5/28 17:34
加载中...