设为首页 加入收藏

TOP

利用树状数组求交点有多少
2014-02-08 13:36:37 来源: 作者: 【 】 浏览:119
Tags:利用 交点 多少

  题意就是让你求交点有多少个。

  我们可以先按a从小到大排序,a相等就按b从小到大排序,这样题意就变成了让我们求b数组的逆序数了。

  代码如下:

  #include

  #include

  #include

  #include

  #include

  #define M 1005

  #define LL long long

  using namespace std;

  int n,m,k;

  int c[M];

  struct node

  {

  int x,y;

  bool operator < ( const node &h ) const

  {

  return x0)

  {

  sum+=c[x];

  x-=Lowbit(x);

  }

  return sum;

  }

  int main()

  {

  int t;

  scanf("%d",&t);

  for(int count=1;count<=t;count++)

  {

  memset(c,0,sizeof(c));

  scanf("%d%d%d",&n,&m,&k);

  for(int i=1;i<=k;i++)

  {

  scanf("%d%d",&p[i].x,&p[i].y);

  }

  sort(p+1,p+1+k);

  LL ans=0;

  for(int i=1;i<=k;i++)

  {

  Update(p[i].y,1);

  ans+=(i-Sum(p[i].y));

  }

  printf("Test case %d: %lld\n",count,ans);

  }

  return 0;

  }

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇维护一个新浪微博同步的代码 下一篇n个整数的数组S使之合为零

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·PostgreSQL 索引 - (2025-12-25 22:20:43)
·MySQL Node.js 连接 (2025-12-25 22:20:41)
·SQL 撤销索引、表以 (2025-12-25 22:20:38)
·Linux系统简介 (2025-12-25 21:55:25)
·Linux安装MySQL过程 (2025-12-25 21:55:22)