标题链接
P10509 停车场
标题形貌
你有一片空隙。这片空隙可以视作一个一个 \(n\times n\) 的正方形。空隙外一圈为墙壁,你无法拆除它们。
现在你要在这片空隙上规划停车位,使之成为一个停车场。你盼望空隙的左下角是停车场的收支口。收支口不能规划为停车位。空隙和停车位都是 \(1\times 1\) 的正方形,且正方形的每条边与墙壁平行大概垂直。
每个停车位都应该与至少一个空隙四连通(即:停车场的上、下、左、右方至少有一个空隙),且这个空隙应当能通过多少次向上、下、左、右的移动,在不颠末任何停车位的环境下到达收支口。
下图为 \(n=4\) 时停车位数最多的放置方法之一,此中赤色为车位,蓝色为出口,白色为空隙。
叨教 \(n=2023\) 下最多能安排多少个停车位?
输入格式
无
输特别式
一个正整数,体现你的答案。
题解
题意
找出在 \(2023\times 2023\) 的正方形中 \(1\times 1\) 的停车位数最大值(停车位的上、下、左、右至少有一个空隙)
思绪
多画几个图,就会发现可以用一种通用的方法:(这里以 \(10\times 10\) 举例)
用zorr.pro绘图真好用
(灰的是车位,黑的是空隙或收支口)
再把黑的位置改一下就会酿成如许:
发现了吗?如果把它分解成条状,两两分组,就会酿发展度为 \(2、5、8\),宽度为 \(2\) 的方块和一段长度为 \(n\),宽度为 \(1\) 的长条,而 \(2、5、8\) 是公差为 \(3\),首项为 \(2\) 的等差数列
∴ 答案已经呼之欲出了!公差为 \(3\),首项为 \(2\),末项为 \(n\) (或 \(n-1\) 或 \(n-2\))的等差数列的各项和加上 \(n\) 就是结果!!!
\(n=2023\) 时答案为 \(2727004\)。
AC记载
AC代码:
[code]#includeusing namespace std;int main(){ long long n=2023,s=n,i; for(i=2;i |