题目链接:http://poj.org/problem?id=3067

求交叉数,先按第一列排序,再对第二列求逆序对

注意会爆int

注意==和=,一不留神写错还没看出来

贴代码

#include<cstdio>
#include<cstring>
#include<cmath>
#include<stdlib.h>
int const maxn=1005;
int a[maxn*maxn],b[maxn*maxn],c[maxn];
int Q,n,m,k;
using namespace std;
void swap(int &x,int &y){int t;t=x;x=y;y=t;
}
void qsort(int L,int R){int i,j,mid,mida,midb;srand(0);i=L;j=R;mid=L+rand()%(R-L+1);mida=a[mid];midb=b[mid];do{while ((a[i]<mida)||((a[i]==mida)&&(b[i]<midb))) i++;while ((a[j]>mida)||((a[j]==mida)&&(b[j]>midb))) j--;if (i<=j){swap(a[i],a[j]);swap(b[i],b[j]);i++;j--;}}while(i<=j);if (i<R) qsort(i,R);if (L<j) qsort(L,j);
}
int lowbit(int x){return x&-x;
}
void add(int x){for (int i=x;i<=m;i+=lowbit(i))c[i]+=1;
}
int query(int x){int sum=0;for (int i=x;i>=1;i-=lowbit(i))sum+=c[i];return sum;
}
int main(){
//  freopen("3067.in","r",stdin);
//  freopen("3067.out","w",stdout);scanf("%d",&Q);int t=0;while(Q--){scanf("%d%d%d",&n,&m,&k);long long ans=0;if (!((n==0)||(m==0)||(k==0))){for (int i=1;i<=k;i++)scanf("%d%d",&a[i],&b[i]);qsort(1,k);m++;memset(c,0,sizeof(c));for (int i=k;i>=1;i--){ans+=query(b[i]-1);add(b[i]);}}t++;printf("Test case %d: %I64d\n",t,ans);}return 0;
}

【写的有漏洞的,欢迎路过大神吐槽】

2017/07/06 19:55:41

Ending.

POJ3067 Japan相关推荐

  1. POJ-3067 Japan(树状数组、线段树)

    题目链接 Description Japan plans to welcome the ACM ICPC World Finals and a lot of roads must be built f ...

  2. POJ3067 Japan(归并排序)

    题意: 日本西海岸有n座城市,东海岸m座城市.现在要在两个海岸的城市之间建高速公路,问有几个相交点. 要点: 对Ax,Ay和Bx,By两条高速公路,有相交点必须(Ax-Bx)*(Ay-By)<0 ...

  3. Japan POJ3067

    Japan   POJ3067 题目:有2个竖下来的点,给出许多连线,问有多少交叉, 思路:连线按左端点a从小到大排序,每次都查询右端点b的后缀和即可(画个图理解) 代码: #include<i ...

  4. 参加LinuxCon Japan 2012

    好长时间没有写博客了.一是时间紧张,另外是这段时间来没有什么可记录的,也发现越来越没有什么文笔可言了,越来越趋于流水账形式了. 发现上小学的时候一写流水账就会被老师批评,说这孩子作文写的跟记流水账似的 ...

  5. POJ-3067 Japan---树状数组逆序对变形

    题目链接: https://vjudge.net/problem/POJ-3067 题目大意: 日本岛东海岸与西海岸分别有N和M个城市,现在修高速公路连接东西海岸的城市,求交点个数. 解题思路: 记每 ...

  6. Dummies Guide to Trains in Japan

    来源:http://www.goaround.org/travel-asia/247702.htm Q:I've traveled to Europe (London's Tube, Paris' M ...

  7. First of all, let’s talk about the richest man in Japan

    First of all, let's talk about the richest man in Japan! Japan's most famous rich are Masaru Yanai a ...

  8. 每日英语:Japan Leader Warns China on Islands Dispute

    TOKYO-Japan's prime minister warned China that its inflammatory reaction to a territorial dispute-fr ...

  9. 「YGG Japan」宣布已完成约 295 万美元的新股权私募

    ForN(总部位于东京都港区:CEO 藤原哲哉:以下简称 "ForN" )今天宣布,与 ForN 合作的区块链游戏平台 YGG Japan 已完成价值约 295 万美元的私募轮融资 ...

最新文章

  1. 独家 | 手把手教你组织数据科学项目!(附代码)
  2. 美国对六种新兴技术实施控制:EUV和5nm相关技术在列
  3. EffectiveC++ Item11
  4. fir.im Weekly - 让 iOS 应用更加安全
  5. python3打包exe_[求助]入坑学习python 需要装pyinstaller打包成exe
  6. java自动定义一个map类_自定义实现Map类 高效版
  7. 一致性Hash简单介绍和使用
  8. 计算机组成原理计算tag,计算机组成原理计算题
  9. InnoDB undo tablespace使用及原理
  10. pytorch学习:运行Mask R-CNN例程
  11. FindFirstFile和FindNextFile
  12. Ubuntu 18.04 安装 Moodle
  13. 计数器代码php,php 的计数器程序代码示例
  14. 原生js获取元素非行内样式属性的方法
  15. 菜刀、冰蝎、蚁剑、哥斯拉
  16. 2020秋季校园招聘深信服、噢易云、绿盟面筋
  17. 2014522420145238 《信息安全系统设计基础》 第五次实验
  18. 中荣股份上市首日破发:市值相对蒸发约3亿元,黄焕然为实控人
  19. 英语日常口语对话(3)
  20. python 双重差分_双重差分的理论与实践

热门文章

  1. css_min-height、max-height、height详细讲解
  2. 阿里架构专家教你打通Git任督二脉,20分钟搞定Git工作原理
  3. 网络技术-路由器配置
  4. 2021年8月世界编程语言排行
  5. 如何开展性能测试工作
  6. 神策优质客户西瓜创客融资 1.5 亿,“AI+ 大数据”构造少儿编程新格局
  7. 解决win10内存占用逐渐变大(亲测有效)
  8. python实现堆栈_Python堆栈实现计算器
  9. 数字PAM信号功率谱密度推导
  10. 使用transformers从头训练Bert