/* * 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 e
0){ 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
最新推荐文章于 2020-07-29 15:13:38 发布