专栏文章

题解:P14005 棋盘游戏

P14005题解参与者 1已保存评论 0

文章操作

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

当前评论
0 条
当前快照
1 份
快照标识符
@minyhhxn
此快照首次捕获于
2025/12/02 10:25
3 个月前
此快照最后确认于
2025/12/02 10:25
3 个月前
查看原文

传送门

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

思路:

本蒟蒻认为这道题很水,已知所有黑点的位置,那么黑点的形状有两种延伸方式:
CPP
 **   **
 **   **
**     **
**     **
...    ...
追本溯源,从刚开始的黑子出发来看,没有黑子就没有以下诸多黑子,所以只需要找到最靠上黑子的坐标,再将纵坐标+1+1,就是刚开始黑子的坐标。(有两种结果输出哪个都一样,所以不用考虑次序。)
例如:
CPP
 *     *
 **   **
 **   **
**     **
**     **
最开始黑子的坐标就由最靠上黑子纵坐标+1+1得来。

Code

CPP
#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;
}

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

评论

0 条评论,欢迎与作者交流。

正在加载评论...