题解:P15022 [UOI 2020 II Stage] 邻居

· · 题解

不难发现,在一张边长为 n 的表中,对于其上的所有点,若某点在主对角线上,则他的行编号 x 一定等于列编号 y;若某点在主对角线上,则他的行编号 x 和列编号 y 的和一定等于 n+1

因此先求出这个点在哪行哪列,在判断就行了。

代码如下:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,m;
    cin>>n>>m;
    int l=m/n,r=m%n;
    if(r==0)r=n;
    else l++;
    if(l==r)cout<<"yes ";
    else cout<<"no ";
    if(l+r==n+1)cout<<"yes ";
    else cout<<"no ";
}