前言:
题目名:分块
第一次写,可能不太好,请见谅。
我们先来看题目:
分析题目:
由题可知,这是一道排序题,但因为数据过大,我们不能用插入排序或冒泡排序等简单的排序,而是用快排。二维数组的数量不能开太大,所以用结构体是最好的。
标程:
#include<bits/stdc++.h>
using namespace std;
int n;
int tmp;
struct node{
long long x,y;
}a[200005];
//定义基本要素,注意这边用结构体是最方便的
bool cmp(node a,node b){
long long x_a=a.x/tmp,x_b=b.x/tmp;
if(x_a!=x_b)return x_a<x_b;
else return a.y<b.y;
}
//快排方式,先排第一关键字,再排第二关键字
int main(){