POJ3067 Japan
题目链接: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相关推荐
- POJ-3067 Japan(树状数组、线段树)
题目链接 Description Japan plans to welcome the ACM ICPC World Finals and a lot of roads must be built f ...
- POJ3067 Japan(归并排序)
题意: 日本西海岸有n座城市,东海岸m座城市.现在要在两个海岸的城市之间建高速公路,问有几个相交点. 要点: 对Ax,Ay和Bx,By两条高速公路,有相交点必须(Ax-Bx)*(Ay-By)<0 ...
- Japan POJ3067
Japan POJ3067 题目:有2个竖下来的点,给出许多连线,问有多少交叉, 思路:连线按左端点a从小到大排序,每次都查询右端点b的后缀和即可(画个图理解) 代码: #include<i ...
- 参加LinuxCon Japan 2012
好长时间没有写博客了.一是时间紧张,另外是这段时间来没有什么可记录的,也发现越来越没有什么文笔可言了,越来越趋于流水账形式了. 发现上小学的时候一写流水账就会被老师批评,说这孩子作文写的跟记流水账似的 ...
- POJ-3067 Japan---树状数组逆序对变形
题目链接: https://vjudge.net/problem/POJ-3067 题目大意: 日本岛东海岸与西海岸分别有N和M个城市,现在修高速公路连接东西海岸的城市,求交点个数. 解题思路: 记每 ...
- 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 ...
- 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 ...
- 每日英语:Japan Leader Warns China on Islands Dispute
TOKYO-Japan's prime minister warned China that its inflammatory reaction to a territorial dispute-fr ...
- 「YGG Japan」宣布已完成约 295 万美元的新股权私募
ForN(总部位于东京都港区:CEO 藤原哲哉:以下简称 "ForN" )今天宣布,与 ForN 合作的区块链游戏平台 YGG Japan 已完成价值约 295 万美元的私募轮融资 ...
最新文章
- 独家 | 手把手教你组织数据科学项目!(附代码)
- 美国对六种新兴技术实施控制:EUV和5nm相关技术在列
- EffectiveC++ Item11
- fir.im Weekly - 让 iOS 应用更加安全
- python3打包exe_[求助]入坑学习python 需要装pyinstaller打包成exe
- java自动定义一个map类_自定义实现Map类 高效版
- 一致性Hash简单介绍和使用
- 计算机组成原理计算tag,计算机组成原理计算题
- InnoDB undo tablespace使用及原理
- pytorch学习:运行Mask R-CNN例程
- FindFirstFile和FindNextFile
- Ubuntu 18.04 安装 Moodle
- 计数器代码php,php 的计数器程序代码示例
- 原生js获取元素非行内样式属性的方法
- 菜刀、冰蝎、蚁剑、哥斯拉
- 2020秋季校园招聘深信服、噢易云、绿盟面筋
- 2014522420145238 《信息安全系统设计基础》 第五次实验
- 中荣股份上市首日破发:市值相对蒸发约3亿元,黄焕然为实控人
- 英语日常口语对话(3)
- python 双重差分_双重差分的理论与实践