题解:P15050 [UOI 2023 II Stage] Pixel snail
题目大意
有一个图像,它由许多个像素组成,而第
- 绘制一个“边框”——沿着边长为
k 的正方形的周边单元格被涂色。 - 绘制一个单元格,其左上角与边框的右下角重合。我们称这个单元格为“桥接”。
- 所有在边框外部且距离边框一个单元格的单元格被涂色。与此同时,与桥接单元格相邻的单元格(除了其左下角与桥接单元格的右上角重合的那个单元格:该单元格仍会被涂色)不会被涂色。
问第
解法
那么我们就可以根据这个图像的三个部分来分别计算。
第一个部分
边框其实就是大正方形减去小正方形,也就是
k * k - (k - 2) * (k - 2)
第二个部分
其实就是
第三个部分
观察发现,第三个部分可以分为
最后只需要把这三个部分加起来即可。
但是注意,当
代码
#include <bits/stdc++.h>
using namespace std;
int main(){
int k;
cin >> k;
if ( k == 1 ){
cout << 11; return 0;
}
cout << k * k - (k - 2) * (k - 2) + 1 + (k + 2) * 2 + k + 1 + k;
return 0;
}