D. Inconvenient Pairs(二分&容斥)

因为每个点(x,y)(x,y)(x,y)要么xxx在直线上要么yyy在直线上。

显然xxx在直线上的点与yyy在直线上的点不会产生贡献,因为两个距离相等。

所以xxx在直线上的点只会对其同类产生贡献,yyy同理。

因为两者等价,不妨只考虑xxx在直线上的点。

如果此时两个点的上面的直线yyy相同,显然会产生贡献。因为这两个点都夹在相同的两直线之间。

否则这两个点肯定可以通过某条直线到达。

然后还需注意的是,对于xxx相同的点也是没有贡献的,因为两点在同一直线上。

查找直线用二分即可。

所以每次增加的贡献就是:cnty−pycnt(y,x)cnt_{y}-pycnt_{{(y,x)}}cnty​−pycnt(y,x)​

每次计算完,cnty+1,pycnt(y,x)+1cnt_y+1,pycnt_{(y,x)}+1cnty​+1,pycnt(y,x)​+1。

yyy类直线同理。

// Problem: D. Inconvenient Pairs
// Contest: Codeforces - Educational Codeforces Round 113 (Rated for Div. 2)
// URL: https://codeforces.ml/contest/1569/problem/D
// Memory Limit: 256 MB
// Time Limit: 2000 ms
// Date: 2021-09-09 10:04:44
// --------by Herio--------#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int N=2e5+5,M=1e6+5,inf=0x3f3f3f3f,mod=1e9+7;
#define mst(a,b) memset(a,b,sizeof a)
#define PII pair<int,int>
#define x first
#define y second
#define pb emplace_back
#define SZ(a) (int)a.size()
#define rep(i,a,b) for(int i=a;i<=b;++i)
#define per(i,a,b) for(int i=a;i>=b;--i)
#define IOS ios::sync_with_stdio(false),cin.tie(0)
void Print(int *a,int n){for(int i=1;i<n;i++)printf("%d ",a[i]);printf("%d\n",a[n]);
}
//if have char input #define should cancel
#define getchar()(p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++)
char buf[1<<21],*p1=buf,*p2=buf;
template <typename T>
inline T& read(T& r) {r = 0; bool w = 0; char ch = getchar();while(ch < '0' || ch > '9') w = ch == '-' ? 1 : 0, ch = getchar();while(ch >= '0' && ch <= '9') r = r * 10 + (ch ^ 48), ch = getchar();return r = w ? -r : r;
}
int t,n,m,k;
int mx[N],my[N];
map<PII,int>mxy,myx;
int x[N],y[N];
int main(){read(t);while(t--){mxy.clear(),myx.clear();read(n),read(m),read(k);rep(i,1,n) read(x[i]),mx[i]=0;rep(i,1,m) read(y[i]),my[i]=0;ll ans=0;while(k--){int u,v;read(u),read(v);int cx=lower_bound(x+1,x+n+1,u)-x;int cy=lower_bound(y+1,y+m+1,v)-y;if(u==x[cx]){if(v==y[cy]) continue;ans+=my[cy]++ - myx[{cy,cx}]++;}else ans+=mx[cx]++ - mxy[{cx,cy}]++;}printf("%lld\n",ans);}return 0;
}

D. Inconvenient Pairs(二分容斥)相关推荐

  1. NYOJ 762 第k个互质数(二分 + 容斥)

    第k个互质数 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 两个数的a,b的gcd为1,即a,b互质,现在给你一个数m,你知道与它互质的第k个数是多少吗?与m互质的数按 ...

  2. codeforces B. Friends and Presents(二分+容斥)

    题意:从1....v这些数中找到c1个数不能被x整除,c2个数不能被y整除! 并且这c1个数和这c2个数没有相同的!给定c1, c2, x, y, 求最小的v的值! 思路: 二分+容斥,二分找到v的值 ...

  3. POJ-2773 欧几里得 + 二分 + 容斥

    题意: 求与n互质的第k个数 开始看到这题很蒙 试了好几种做法都T了 后来才知道 由于GCD(a,b) =  GCD(b, a%b) = GCD(a%b,b) 所以 GCD(a,b) = GCD(a+ ...

  4. 【COCI11-12 #4】纠结的数【枚举+二分+容斥】

    题目描述: 找出第N小的正整数X,满足条件X的最小的素因子是P.如果X的值超过10^9,则输出0. 输入格式:第1行:2个整数N和P (1 ≤ N, P ≤ 10^9),P一定是素数 题目分析: 如果 ...

  5. CodeForces - 1486F Pairs of Paths(树上计数+容斥)

    题目链接:点击查看 题目大意:给出一棵 nnn 个点的树,再给出 mmm 条路径,现在问有多少个路径对 (x,y)(x,y)(x,y),满足第 xxx 条路径和第 yyy 条路径有且仅有一个交点 题目 ...

  6. Educational Codeforces Round 37 G. List Of Integers (二分,容斥定律,数论)

    G. List Of Integers time limit per test 5 seconds memory limit per test 256 megabytes input standard ...

  7. P4318,bzoj2440-完全平方数【二分答案,莫比乌斯函数,容斥】

    正题 题目链接: https://www.luogu.org/problem/P4318 https://www.lydsy.com/JudgeOnline/problem.php?id=2440 题 ...

  8. 之江学院第0届 A qwb与支教 容斥与二分

    题目链接: http://115.231.222.240:8081/JudgeOnline/problem.php?cid=1005&pid=0 题目描述: 给你三个数x, y, z 和 N ...

  9. 最简真分数c语言,HihoCoder1655 : 第K小最简真分数([Offer收割]编程练习赛39)(唯一分解+容斥定理+二分)(不错的数学题)...

    描述 给一个整数N,请你求出以N为分母的最简(既约)真分数中第K小的是多少? 输入 两个整数N个K. 对于30%的数据,1 <= N <= 1000000 对于100%的数据,1 < ...

最新文章

  1. ORM数据层框架的设计热点:更新指定的列的几种设计方案
  2. 超经典解释什么叫网关
  3. 总是助手服务器失败怎么回事,《遇见逆水寒》连接服务器失败解决方法汇总 服务器连接失败问题原因...
  4. intent-filter something
  5. 物联网ARM开发高级
  6. 数据中心机房搬迁施工技术方案
  7. K-means算法(知识点梳理)
  8. TVS 瞬态抑制二极管如何选型?
  9. 微信小程序上传图片(预览 删除 限制图片大小、张数)
  10. 用了python之后笔记本卡了_干货!如何用Python在笔记本电脑上分析100GB数据(上)...
  11. java 点名器_java随机点名器 课程设计.docx
  12. 计算机初中几年级考,2021年小升初考试时间(2021小升初考试是几月几号 )
  13. python画图小例(玫瑰、佩奇、哆啦A梦、美队盾牌)
  14. QVariant方法功能(QT5.12)
  15. 浅谈前端的数据驱动和事件驱动
  16. 游戏建模3Dmax基础:游戏建模渲染小技巧
  17. C++基础概念(初步代码示例英石与磅单位互换)
  18. 使用Visual Leak Detector工具检测内存泄漏
  19. 收藏这几个软件,让你轻松从视频里提取音频
  20. 火狐浏览器书签工具栏图标_在Firefox书签工具栏中浓缩书签

热门文章

  1. iOS ERROR ITMS-9000: Missing or invalid signature. The bundle 'com.google.GPPSignIn3PResources' at
  2. 移动端——滑屏原理分析
  3. PCA-主成分分析笔记
  4. uni-app adb安卓wifi无线调试
  5. Docker(三):镜像仓库 - 公共仓库、私有仓库 - commit、tag、push
  6. 安装redhat 8.0红帽系统的图文教程(小白必备)
  7. 计算机科学采用通知,关于采用合同模板的通知 科研〔2019〕134号
  8. 自动化立体仓库出入库调度研究
  9. 辽宁三维企业产品vr场景展示制作
  10. 使用NI-DAQmx进行数据采集和显示,你来你也行!