建议加强数据,O(n^2logn)轻松水过
查看原帖
建议加强数据,O(n^2logn)轻松水过
1074084
asd890123楼主2024/5/2 12:17
#include <cstdio>
#include <cctype>
#include <vector>
#include <algorithm>

namespace QuikIO{
    
    int p1,p2;
    const int maxn = 1e6;
    char in[maxn];
    
    #define getchar() (p1 == p2 && (p1 = 0,p2 = fread(in,1,maxn,stdin)),p1 == p2 ? EOF : in[p1++])
    
    int read(){
        
        int d = 0;
        char ch = getchar();
        
        while (!isdigit(ch)) ch = getchar();
        while (isdigit(ch)) 
            d *= 10,d += ch - '0',ch = getchar();
        
        return d;
    }
    
    #undef getchar
    
}using QuikIO::read;

int main(){
    
    int n,tmp;
    std::vector <int> v;
    
    n = read();
    for (int i = 0;i < n;i++) 
        tmp = read(),v.insert(std::upper_bound(v.begin(),v.end(),tmp),tmp);
    for (int i = 0;i < n;i++) printf("%d ",v[i]);
    
    return 0;
}

upper_bound:(O(log n)),insert:O(n),所以现在读入中的每一步都是O(nlogn),外层循环n次,总复杂度O(n^2logn),接近1.7e11,是1e8的1700倍,竟然不开O2都能过(最长242ms),离谱!!!

2024/5/2 12:17
加载中...