CF870E.Points, Lines and Ready-made Titles
提高+/省选-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given n distinct points on a plane with integral coordinates. For each point you can either draw a vertical line through it, draw a horizontal line through it, or do nothing.
You consider several coinciding straight lines as a single one. How many distinct pictures you can get? Print the answer modulo 109 + 7.
给你平面上的 $ n $ 个互异的整数坐标点。对于每个点,你可以选择:
- 通过该点画一条竖直线;
- 通过该点画一条水平线;
- 或者不进行任何操作。
若多条直线重合,则视为同一条直线。问:一共可以得到多少种不同的图形?答案对 $ 10^9 + 7 $ 取模。
输入格式
The first line contains single integer n (1 ≤ n ≤ 105) — the number of points.
n lines follow. The (i + 1)-th of these lines contains two integers x__i, y__i ( - 109 ≤ x__i, y__i ≤ 109) — coordinates of the i-th point.
It is guaranteed that all points are distinct.
第一行包含一个整数 n(1≤n≤105)——点的数量。
接下来有 n 行。其中第 (i+1) 行包含两个整数 xi、yi(−109≤xi,yi≤109)——第 i 个点的坐标。
保证所有点互不相同。
输出格式
Print the number of possible distinct pictures modulo 109 + 7.
输出可能的不同图片数量对 109+7 取模的结果。
输入输出样例
输入#1
4 1 1 1 2 2 1 2 2
输出#1
16
输入#2
2 -1 -1 0 1
输出#2
9
说明/提示
In the first example there are two vertical and two horizontal lines passing through the points. You can get pictures with any subset of these lines. For example, you can get the picture containing all four lines in two ways (each segment represents a line containing it).
The first way:
The second way: 
In the second example you can work with two points independently. The number of pictures is 32 = 9.
在第一个例子中,有两条竖直线和两条水平线经过这些点。你可以得到由这些直线中任意子集构成的图形。例如,你可以用两种方式得到包含全部四条直线的图形(每条线段代表一条包含它的直线)。
第一种方式:
第二种方式:
在第二个例子中,你可以独立地处理两个点。图形的总数为 32=9。
输入解题思路,AI测评打分。不知道怎么写?