/*
* poj3067.cpp
*
* Created on: 2010-8-5
* Author: friendy
*/
//一边排序,一边求逆序数
//树状数组
#include
#include
#include
#include
using namespace std;
int c[1001];//树状数组,保存的是每个点后面有多少个点
int n,m,tmp;
//结构东西为了排序
struct Node{
int w,e;
bool operator<(const Node &other)const{
if(w==other.w)
return e0){
t+=c[x];
x-=lowbit(x);
}
return t;
}
void chang(int pos,int d){
while(pos<=tmp){
c[pos]+=d;
pos+=lowbit(pos);
}
}
int main(){
int t,j,k,cnt=0;
long long ans;
scanf("%d",&t);
while(t--){
cnt++;
tmp=0;
memset(c,0,sizeof(c));
scanf("%d%d%d",&n,&m,&k);
for(j=1;j<=k;j++){
scanf("%d%d",&a[j].e,&a[j].w);
if(tmp
poj3067
最新推荐文章于 2019-08-09 08:51:54 发布