B - Eastern Exhibition(思维)

B - Eastern Exhibition

    • 题目
    • 题解
      • 题意
      • 思路
      • 代码

题目

B - Eastern Exhibition(思维)_第1张图片
B - Eastern Exhibition(思维)_第2张图片

题解

题意

首先在二维平面给你n个点,让你在整数坐标建一个距离这n个点最近的位置,求有多少个这样的位置。

思路

把二维平面投射到一维的x,y轴上,然后取中位数做垂线,垂线相交的点即为所求的点。
B - Eastern Exhibition(思维)_第3张图片

浅蓝点为所给点,深蓝点为投影,绿线就是中位数点所做出的垂线,红点即为所求点。

代码

    #include 
    #define ll long long
    using namespace std;
     
    int main() {
     
        ll a[2021], b[2021];
        ll t, n;
        cin >> t;
        while (t--) {
     
            cin >> n;
            for (int i = 0; i < n; i++)
                cin>> a[i]>>b[i];
            sort(a, a + n);
            sort(b, b + n);
            if (n %2==1) {
     
                cout << 1 << endl;
            }
            else {
     
                ll l = (n-1) / 2, r = n / 2;
                cout << (a[r] - a[l] + 1) * (b[r] - b[l] + 1) << endl;;
            }
        }
        return 0;
    }

你可能感兴趣的:(cf题,算法)