poj 3067 japan 树状数组

原创 2012年03月22日 11:03:12

Poj3067 japan 这里求的是高架桥交叉的个数,首先按照规则排序,然后同上处理

               这里要注意的是 输入输出要用scanf 且要用sum要用__int64 

#include<iostream>
#include<algorithm>
#include<cstring>
#define maxn 2005
#define MAX 1000010
using namespace std;
struct node
{
  int east,west;
};
int tree[maxn/2];
node input[MAX];
int cmp(node x1,node x2)
{
    if(x1.east!=x2.east)
     return x1.east<x2.east;
    else
     return x1.west<x2.west;
}
void update(int x,int val)
{
  while(x<=1001)
  {
    tree[x]+=val;
    x+=(x&(-x));
  };
}
long long getsum(int x)
{
    long long sum=0;
    while(x>0)
    {
      sum+=tree[x];
      x-=(x&-x);
    }
    return sum;
}
int main()
{
    int nCase;
    int N,M,K;
    int T=1;
    cin>>nCase;
    while(nCase--)
    {
      //cin>>N>>M>>K;
      scanf("%d%d%d",&N,&M,&K);
      memset(tree,0,sizeof(tree));
      for(int i=1;i<=K;i++)
       //cin>>input[i].east>>input[i].west;
       scanf("%d%d",&input[i].east,&input[i].west);
      sort(input+1,input+K+1,cmp);
      long long sum=0;
      for(int i=1;i<=K;i++)
      {
          update(input[i].west,1);
          sum+=i-getsum(input[i].west);
      }
      //cout<<"Test case "<<T<<": "<<sum<<endl;
      printf("Test case %d: %I64d\n",T,sum);         //这里居然必须要用__int64这种,也就是说必须要用这种格式输出,太bt了
      T++;
    }
    system("pause");
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

poj3067 Japan(树状数组)

树状数组
  • u012860063
  • u012860063
  • 2014年06月29日 10:53
  • 1219

poj 3067(树状数组求逆序对)

题意:日本岛东海岸与西海岸分别有N和M个城市,现在修高速公路连接东西海岸的城市,求交点个数。 做法:记每条告诉公路为(x,y), 即东岸的第x个城市与西岸的第y个城市修一条路。当两条路有交点时,满足...
  • Weiguang_123
  • Weiguang_123
  • 2012年08月22日 14:50
  • 3525

POJ3067:Japan(树状数组求逆序对)

Description Japan plans to welcome the ACM ICPC World Finals and a lot of roads must be built for...
  • libin56842
  • libin56842
  • 2015年06月23日 21:38
  • 2032

POJ 3067 Japan 树状数组

Description Japan plans to welcome the ACM ICPC World Finals and a lot of roads must be built for...
  • qq_35109299
  • qq_35109299
  • 2016年08月23日 13:12
  • 62

POJ 3067 Japan (树状数组)

Description Japan plans to welcome the ACM ICPC World Finals and a lot of roads must be built for t...
  • u013923947
  • u013923947
  • 2014年08月24日 23:25
  • 423

POJ 3067—— Japan(树状数组)

Japan Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 20991   Accepte...
  • u014141559
  • u014141559
  • 2014年08月25日 19:03
  • 364

poj 3067 Japan(树状数组)

Japan Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 29345   Accepte...
  • Timeclimber
  • Timeclimber
  • 2017年08月09日 16:42
  • 92

poj 3067 树状数组 Japan

题意:http://poj.org/problem?id=3067         两排点,问有多少个焦点。 做题过程:        乍看以为是图论呢,韦广说是树状数组。于是我就开始自己想,自...
  • Julyana_Lin
  • Julyana_Lin
  • 2012年08月24日 16:59
  • 376

POJ 3067 Japan(树状数组 )

题意:在东边有n座城市,从北到南编号依次为1,2,3.n 在西边有m座城市,从北到南编号分别为1,2,3.m 现要在南北城市之间修建k条超级高速公路,求会出现多少个十字路口 思路:找到合适的统计方法,...
  • kalilili
  • kalilili
  • 2015年03月12日 19:40
  • 423

POJ 3067 Japan(树状数组)

题目链接: POJ 3067 Japan 题意: 左列有n个点,右列有m给点。点的编号都是从1开始,然后有k条线段a–b,表示连接左列的a和右列的b, 问这些线段的交点一共有多少?保证交点处有...
  • Ramay7
  • Ramay7
  • 2016年03月30日 17:22
  • 180
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:poj 3067 japan 树状数组
举报原因:
原因补充:

(最多只允许输入30个字)