POJ 3067 Japan
来源:互联网 发布:朝鲜有多穷 知乎 编辑:程序博客网 时间:2024/06/05 16:48
题意:有两排城市,这两排之间有一些城市之间有连接的道路,给出所有道路,问有多少道路是相交的。实际上是求逆序数。
做法:先x升序,x相同y升序,用树状数组求逆序数。
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>struct p{ int x,y;}a[1111*1111];int c[1111],n,m,k;bool comp(p a, p b){ if(a.x == b.x) return a.y < b.y; return a.x < b.x;}int lowbit(int x){ return x&-x;}void update(int x,int w){ for(int i = x; i <= m ; i += lowbit(i)) c[i] += w;}int query(int x){ int ans = 0 ; for(int i = x ; i > 0 ; i -= lowbit(i)) ans += c[i]; return ans;}using namespace std;int main(){ int t; scanf("%d",&t); for(int cas = 1 ; cas <= t ; cas++) { memset(c,0,sizeof(c)); scanf("%d%d%d",&n,&m,&k); for(int i = 1 ; i <= k ; i++) scanf("%d%d",&a[i].x,&a[i].y); sort(a+1,a+1+k,comp); long long ans = 0; for(int i = 1 ; i <= k ; i++) { ans += (query(m) - query(a[i].y)); update(a[i].y,1); } printf("Test case %d: %I64d\n",cas,ans); } return 0;}
0 0
- POJ 3067 Japan
- poj 3067 Japan
- POJ 3067 - Japan
- poj 3067 Japan
- Poj 3067 Japan
- poj 3067 Japan
- POJ 3067 Japan
- Poj 3067 Japan
- POJ 3067 Japan
- POJ 3067 Japan
- POJ-3067-Japan
- POJ 3067 Japan
- POJ 3067 Japan
- poj 3067 Japan
- POJ 3067 Japan
- POJ 3067 Japan
- poj 3067 Japan
- POJ 3067 Japan
- Linux数据备份Rsync+inotify+crontab+tar(一)
- POJ 2503 Babelfish
- 扫雷游戏 C语言实现
- Java学习笔记9
- 出现次数最多的整数
- POJ 3067 Japan
- test
- Codeforces 514 B . Han Solo and Lazer Gun 精度 除0
- 华容道自动求解 java版
- 【翻译自mos文章】解释 datafile name中的MISSING关键字
- 【OpenCV_C++】学习杂记
- 指数型母函数
- Oracle 11g安装指南
- 利用SPI编写类似sockscap的代理工具