题解:P14005 棋盘游戏

· · 题解

传送门

本蒟蒻第一篇题解QWQ,谢谢支持

思路:

本蒟蒻认为这道题很水,已知所有黑点的位置,那么黑点的形状有两种延伸方式:

 **   **
 **   **
**     **
**     **
...    ...

追本溯源,从刚开始的黑子出发来看,没有黑子就没有以下诸多黑子,所以只需要找到最靠上黑子的坐标,再将纵坐标+1,就是刚开始黑子的坐标。(有两种结果输出哪个都一样,所以不用考虑次序。)

例如:

 *     *
 **   **
 **   **
**     **
**     **

最开始黑子的坐标就由最靠上黑子纵坐标+1得来。

Code

#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
template<typename T> void re(T&x){x = 0; int sign = 1; char c;do{c = getchar(); if (c == '-') sign = -1;}while(!isdigit(c)); do{x = x * 10 + c - '0'; c = getchar();}while(isdigit(c)); x *= sign;}
void write(int x){if (x < 0) x = -x, putchar('-'); if (x < 10) putchar(x + '0'); else write(x / 10), putchar(x % 10 + '0');}

const int N = 2e5 + 100;

ll n;
struct node{
    ll x, y;
}a[N];

bool cmp(node a, node b){
    return a.y > b.y;
}

int main(){
    re(n);
    for (int i = 1; i <= n; i ++) re(a[i].x), re(a[i].y);
    sort(a + 1, a + n + 1, cmp);
    printf("%lld %lld\n", a[1].x, a[1].y + 1);
    return 0;
}

\textit{\textbf Thank you for reading !!}