这题的关键是方法。怎么才是相交的呢?一种方法是线段a的左边比线段b的左边小,同时a的右边比b的右边大。这时就可以构成一个相交。于是,我们可以根据左边的值来做降序排列,然后根据线段树来统计crosses。

排名还在上升中。加油!

#include <iostream>#include <cstdio>#include <fstream>#include <algorithm>#include <memory.h>

#define MAXN 1005using namespace std;

int M,N,K;

int C[MAXN];struct Node{int n,m;}nn[MAXN*MAXN];

bool cmp(Node a,Node b){if(a.m==b.m)  return a.n>b.n;  //避免同端点的也算进去。    else return a.m>b.m;}inline int lowbit(int i){return i&(-i);}

void add(int i){for(;i<MAXN ;C[i]+=1,i+=lowbit(i)); }

long long sum(int i){long long s=0;for(;i>0 ;s+=C[i],i-=lowbit(i));return s; }

int main(){int Case;long long nSum;int i,j,x;//freopen("acm.in","r",stdin);    scanf("%d",&Case);for(i=0 ;i<Case ;i++){        nSum=0;        memset(C, 0, sizeof(C));       scanf("%d%d%d",&N,&M,&K);for(j=0 ;j<K ;j++)         scanf("%d%d",&nn[j].n,&nn[j].m);       sort(nn,nn+K,cmp);for(x=0 ;x<K ;x++){          nSum+=sum(nn[x].n-1);  //这里加的是右边比它大而左边比它小的那些线与它的焦点//减一是为了避免左边的端点相同而多加一次。          add(nn[x].n);    //这两个执行的顺序时关键       }       printf("Test case %d: %lld\n",i+1,nSum);    }return 0;}

poj 3067 树状数组相关推荐

  1. HDU 2689 POJ 2299 树状数组 + 离散化

    以前都是直接树状数组裸奔,昨天一个题数据量好大,过不了,没办法只能学离散化,今天A了第一个离散化的题 #include<stdio.h> #include<string.h> ...

  2. poj 3928 树状数组

    题目中只n个人,每个人有一个ID和一个技能值,一场比赛需要两个选手和一个裁判,只有当裁判的ID和技能值都在两个选手之间的时候才能进行一场比赛,现在问一共能组织多少场比赛. 由于排完序之后,先插入的一定 ...

  3. 树状数组 之 poj 3067

    这道题和 poj 2481 极其相似...但wa了几次... 原因: 1)对于结果和存储树状数组求和的变量,采用 long long 来保存: 2)从东海岸 number x,到西海岸 number ...

  4. POJ 3067 Japan【树状数组】

    题目 Japan plans to welcome the ACM ICPC World Finals and a lot of roads must be built for the venue. ...

  5. poj 2352 Stars 线段树(先建后查/边建边查)/树状数组三种方法思路详解,带你深入了解线段树难度⭐⭐⭐★

    poj 2352 Stars 目录 poj 2352 Stars 1.树状数组 2.线段树,先建树后查找 3.线段树,边建树边查找 Description Astronomers often exam ...

  6. POJ 2481 Cows POJ 2352 Stars(树状数组妙用)

    题目链接:POJ 2481 Cows POJ 2352 Stars 发现这两个题目都跟求逆序数有着异曲同工之妙,通过向树状数组中插入点的位置,赋值为1,或者++,然后通过求和来判断比当前 点 &quo ...

  7. poj 3321 Apple Tree(dfs序+树状数组求和模型)

    题目链接:http://poj.org/problem?id=3321 解题思路: 先dfs求出序列,将子树转化到dfs序列的区间内,接下来就是简单的树状数组求和模型了.水题. #include< ...

  8. poj 2299 Ultra-QuickSort(树状数组求逆序数+离散化)

    题目链接:http://poj.org/problem?id=2299 Description In this problem, you have to analyze a particular so ...

  9. POJ 2299 Ultra-QuickSort(树状数组 + 离散)

    链接:http://poj.org/problem?id=2299 题意:给出N个数组成的数列A(0 <= A[i] <= 999,999,999),求该数列逆序对的数量. 分析:题目所谓 ...

最新文章

  1. C# API中的模型和它们的接口设计
  2. Scala学习 -- 基础语法
  3. 未能加载包studio package_Xrepo:一个现代化的跨平台 C/C++ 包管理器
  4. php时间函数单字母,ThinkPhp单字母函数
  5. java开发汉字显示不全_求java转码ISO-8859-1转UTF-8汉字显示不全补救方案?
  6. SQL2005 安装时 “性能监视器计数器要求(错误)” 解决方案
  7. 格力接受美国5.83亿巨额罚款!官方紧急回应...
  8. python multiprocessing.Lock 应用
  9. 直接访问WEB-INF目录下的JSP页面的方法
  10. python 监听tcp端口_创建TCP监听_创建TCP监听_功能示例_Python SDK示例_SDK 参考_开发指南_负载均衡 - 阿里云...
  11. python3生成随机数_python3实现随机数
  12. Redis安装及HA(High Availability)配置
  13. Intersecting Lines - POJ 1269(判断平面上两条直线的关系)
  14. Python3,10行代码,给pdf文件去水印,再也不用花费冤枉钱了。
  15. 十大管理之项目质量管理知识点
  16. STM32——新建 Keil MDK 5 工程(寄存器版本)
  17. 获取高德地图位置的经纬度
  18. Pool thread stack traces: Thread[C3P0PooledConnectionPoolManager[identityToken-原因解决办法
  19. A卡 HD5770(HD6770) Readon HD 5xxx 6xxx系列显卡黑苹果MOJAVE CATALINA QE/CI驱动教程
  20. 计算机组成原理-Chapter1 计算机系统概述

热门文章

  1. 【10-11】PR调色+多机位剪辑
  2. css table自适应斜线
  3. rono在oracle的作用_细节见真章,OPPO Reno多项品质测试,这才是最真实表现
  4. 2020少儿编程教育政策大汇总!
  5. 因果,稳定,无源,无损系统(1)
  6. Kanzi: kanzi 学习:kanzi触发器参考
  7. 华为路由器ws5200虚拟服务器,华为路由器配置dhcp怎么弄?华为路由WS5200设置DHCP服务器方法...
  8. 百分点认知智能实验室:如何打造工业级的机器翻译
  9. 写给还在迷茫中的朋友,一名6年程序员的工作感悟!!!
  10. php 五舍六入,四舍五入计算器 四舍五入、四舍六入五取偶(双)算法 - 数学公式 - 房贷计算器...