社区讨论

既然是要像点,为什么可以有奇数个点?

P1227[JSOI2008] 完美的对称参与者 3已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lodgyyjx
此快照首次捕获于
2023/10/31 06:26
2 年前
此快照最后确认于
2023/11/06 21:40
2 年前
查看原帖
原本把奇数个点排除就WA了四个,注释掉就AC
CPP
#include <iostream>
#include <algorithm>
#include <cstdio>

using namespace std;

struct Point
{
    int x, y;
};

Point S[20000];

int main()
{
    int N;
    cin >> N;
*/   if (N % 2 == 1)
        goto Fail;
*/ 	{
        long double Cx = 0, Cy = 0;
        for (int i = 0; i < N; i++)
            cin >> S[i].x >> S[i].y, Cx += S[i].x, Cy += S[i].y;
        Cx /= N, Cy /= N;
        sort(S, S + N, [](const Point & a, const Point & b){return a.x < b.x || (a.x == b.x && a.y < b.y);});
        for (int i = 0; i < N / 2; i++)
        {
            if (abs(Cx * 2 - S[i].x - S[N - 1 - i].x) > 1e-5 || abs(Cy * 2 - S[i].y - S[N - 1 - i].y) > 1e-5)
                goto Fail;
        }
        printf("V.I.P. should stay at (%.1Lf,%.1Lf).", Cx, Cy);
        return 0;
    }
    Fail:
    cout << "This is a dangerous situation!";
    return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...