84pts求卡常
  • 板块P1801 黑匣子
  • 楼主asd890123
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/5/31 14:53
  • 上次更新2024/5/31 18:44:12
查看原帖
84pts求卡常
1074084
asd890123楼主2024/5/31 14:53

TLE in #7,#11,但都TLE的不多(都没有到达即使上限(即500 + 200 = 700ms),我的是#7:599ms,#11:631ms,所以求卡常:

#include <algorithm>
#include <iostream>
#include <vector>

int i = 0,cnt = 1;
std::vector <int> v;
constexpr int maxn = 2e5 + 5;

int get(){return v[i++];}
void add(int x){v.insert(std::upper_bound(v.begin(),v.end(),x),x);}

int main(){
    
    std::ios::sync_with_stdio(0);
    std::cin.tie(0),std::cout.tie(0);
    
    int m,n,a[maxn],u[maxn];
    
    std::cin >> m >> n;
    for (int i = 1;i <= m;i++) std::cin >> a[i];
    for (int i = 1;i <= n;i++) std::cin >> u[i];
    for (int i = 1;i <= m;i++){
        
        add(a[i]);
        while (u[cnt] == i) 
            std::cout << get() << '\n',cnt++;
        
    }
    
    return 0;
}
2024/5/31 14:53
加载中...