#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int N=1e4+10;
int block[N];
struct Node {
int l,r,id;
bool operator<(const Node & th)const {
if(block[l]==block[th.l]&&r!=th.r)return r<th.r;
return l<th.l;
}
}node[N];
int n,m;
void build(){
int sq=(int)sqrt(n*1.0);
for(int i=1;i<=n;i++){
block[i]=(i-1)/sq;
}
sort(node,node+m);
int l=1,r=0;
for(int i=0;i<m;i++){
for(;r<node[i].r;r++){
+ r+1
}
for(;r>node[i].r;r--){
- r
}
for(;l<node[i].l;l++){
-l
}
for(;l>node[i].l;l--){
+ l-1
}
}
}
int main(){
return 0;
}
莫队
最新推荐文章于 2024-03-31 16:16:27 发布