这道题和 poj 2481 极其相似。。。但wa了几次。。。

原因:

1)对于结果和存储树状数组求和的变量,采用 long long 来保存;

2)从东海岸 number x,到西海岸 number y, 可能建了两条高速

(即从位置 x 到位置 y 可能有两条高速)

故在树状数组求 mySum 时,所传参数为 y-1  (详见代码)

解题思路:

设东海岸位置 x ,西海岸位置 y ,使x 升序,若 x 相等,按 y 升序(可模拟所给范例,有助理解)

#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
typedef long long int64;
int64 bit[1005];
int N, M, K;struct node {int x, y;};node Arr[1005*1005];bool Cmp (const node n1, const node n2) {if (n1.x == n2.x) { return n1.y > n2.y;}else return n1.x > n2.x;
}int64 mySum(int x)
{int64 sum = 0;while (x){sum += bit[x];x -= (x&(-x));}return sum;
}void myAdd(int x)
{while (x <= 1005){bit[x] += 1;x += (x&(-x));}
}int64 Solve()
{int64 ans = 0;for (int i = 0; i < K; i++) {ans += mySum(Arr[i].y - 1); // wa 原因2myAdd(Arr[i].y);}return ans;
}int main()
{//freopen("input.txt", "r", stdin);int T;scanf("%d", &T);for (int cas = 1; cas <= T; cas++) {memset(Arr, 0, sizeof(Arr));memset(bit, 0, sizeof(bit));scanf("%d %d %d", &N, &M, &K);for (int i = 0; i < K; i++) {scanf("%d %d", &Arr[i].x, &Arr[i].y);}sort(Arr, Arr + K, Cmp);printf("Test case %d: %lld\n", cas, Solve());}return 0;
}

树状数组 之 poj 3067相关推荐

  1. 训练(线段树+树状数组) poj——3264

    这个题应该算是比较简单的线段树问题吧,还可以用RMQ做,不过现在还不太熟悉就用线段树做了,直接附代码了! #include <stdio.h>#define M 50000#define ...

  2. 数据结构一【树状数组】普通、二维、离线树状数组的(单点修改,单点查询,区间修改,区间查询)模板及应用例题总结

    文章目录 树状数组 lowbit 线段树与树状数组 单点修改 区间查询 区间修改 区间求和 二维树状数组 离线树状数组 例题 POJ:stars MooFest [SDOI2009]HH的项链 Tur ...

  3. POJ 3067 Japan【树状数组】

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

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

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

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

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

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

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

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

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

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

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

  9. POJ 1195 Mobile phones(裸的二维树状数组)

    http://poj.org/problem?id=1195 题意:给出一个矩阵,给某个格子加/减一个数,就某个子矩阵的和,1024*1024的范围,二维的树状数组 子矩阵(x1,y1,x2,y2)( ...

最新文章

  1. linux数据库都备份什么,Linux运维学习之数据库备份与恢复
  2. 日期格式YYYY-mm-dd HH:MM:SS大小写解释
  3. win7 easybcd 安装centos7.5 双系统
  4. 枚举所有进程及其ID
  5. 为什么派生的子类报错不能实例化抽象类_一文搞懂抽象类和接口,从基础到面试题,揭秘其本质区别...
  6. python是什么专业学的-python编程学习需要哪些基础和准备工作?
  7. 牛逼!只需 3 步,Java 也能做图片识别!
  8. C# winfrom gridview全部选择和全部取消
  9. Python仿黑客帝国代码雨
  10. 在未来的多云世界中,选择云服务提供商,需要考虑什么?
  11. Maximum Clique最大团问题
  12. 【MOTRIX】使用motrix下载百度云文件
  13. pdfbox读取pdf图片,截取图片, tess4j 图片文字识别
  14. html实现用户调查的表单网页,江苏开放大学网页制作基础及HTML测试作业二制作1个E游调查的表单网页...
  15. 发现网站被劫持该怎么办?网站域名劫持如何有效预防
  16. java 一个线程占多少内存_一个jvm线程占用多少操作系统内存
  17. Findora区块链培训课程重磅上线!(附视频)
  18. MU-MIMO有意思的用户配对/调度
  19. 手机游戏产品AIWI 强势来袭
  20. FFmpeg 视频处理工具用法

热门文章

  1. A5SHB,A5SHB芯片三极管规格书
  2. m语言 东华his_M语言
  3. 阿里云CentOS镜像下载地址
  4. Java程序设计——随机点名器
  5. 百度云使用Docker镜像加速器
  6. [HDU-6578]
  7. html 单元格被撑开_tabletd宽度被撑开的问题。棘手~_html/css_WEB-ITnose
  8. pg数据库numeric对应oracle,Oracle类型number与PG类型numeric对比和转换策略
  9. win10计算机休眠设置在哪里,win10休眠选项在哪里设置?如何设置?
  10. 通达信指标:捕捞季节