#543. Rectangular Pasture

0

Rectangular Pasture

Rectangular Pasture

题目描述

农夫约翰最大的牧场可以看作一个由方形“格子单元”组成的巨大二维网格(可以想象成一个巨大的棋盘)。目前,有 NN 头奶牛占据了其中一些格子(1≤N≤25001 \leq N \leq 2500)。 农夫约翰想建造一段围栏,将一个由格子组成的矩形区域围起来;该矩形必须与 xx 轴和 yy 轴平行,并且它可以小到只有一个格子。请你帮助他统计:他能用这样的矩形区域围住的奶牛子集一共有多少种不同的可能。注意,空集也应当计为一种。

输入格式

第一行包含一个整数 NN。 接下来 NN 行每行包含两个用空格分隔的整数,表示一头奶牛所在格子的坐标 (x,y)(x,y)。所有的 xx 坐标两两不同,所有的 yy 坐标也两两不同。所有 xx 和 yy 的取值都在范围 0…1090 \ldots 10^9 内。

输出格式

输出农夫约翰能够围起来的奶牛子集数量。可以证明该数量可以用有符号 64 位整数表示(例如 C/C++ 中的 long long)。

4
0 2
1 0
2 3
3 5
13

提示

一共有 242^4 个子集。农夫约翰无法建造围栏使其恰好只围住奶牛 1、2、4,或只围住奶牛 2、4,或只围住奶牛 1、4,因此答案为 24−3=16−3=132^4-3=16-3=13。 SCORING: 测试点 2-3 满足 N≤20N\le 20。 测试点 4-6 满足 N≤100N\le 100。 测试点 7-12 满足 N≤500N\le 500。 测试点 13-20 没有额外限制。 Problem credits: Benjamin Qi

标签: USACO|2020|Silver

来源

USACO|2020|Silver