题解:AT_joi2011yo_c タイル (Tile)

hyc42

2024-11-16 22:52:12

Solution

前置

题目传送门 1(洛谷)

题目传送门 2(AT)

AC 记录

题意

在一个为 n\times n 的正方形中,坐标为 (a,b) 的位置的颜色(其实就是求圈数 \bmod3 后的值)。

其实思考一下就觉得很简单

思路

想要求出 (a,b) 位置的圈数,不妨我们先画图试试看(自己先试一下)。可以看出:

a\leq \lfloor\frac{n}{2}\rfloor 时,圈数为 a

否则圈数为 n-a+1,最后取出最小值,也就是 min(a,n-a+1)

再将求到的两个圈数取最小值,就是 `min(min(a,n-a+1),min(b,n-b+1))`。 最后,输出最终圈数 $\bmod3$ 的结果 ## 注意 在 $\bmod3$ 时需要先 $-1$ 防止 $0$ 出现。 ## 代码 ```cpp #include<bits/stdc++.h> using namespace std; int n,k,a,b; int main(){ cin>>n>>k; while(k--)cin>>a>>b,cout<<(min(min(a,n-a+1),min(b,n-b+1))-1)%3+1<<'\n'; return 0; } ```