题解:P15050 [UOI 2023 II Stage] Pixel snail

· · 题解

P15050 [UOI 2023 II Stage] Pixel snail 题解

题目传送门

题目描述

像素蜗牛是一种很容易在方格纸上画出的图形,它与符号 "@" 非常相似。

k 阶像素蜗牛由以下算法构造:

下图展示了第 1、2、3 和 4 阶的像素蜗牛。

:::align{center} :::

算法中第一、第二和第三步涂色的单元格分别用数字(1、2、3)标出。

编写一个程序,计算绘制第 k 阶像素蜗牛需要涂色的单元格数量。

输入格式

第一行包含一个整数 k1 \le k \le 10^{8})。

输出格式

输出一个数字——绘制第 k 阶像素蜗牛需要涂色的单元格数量。

做法分析

我们可以把这个图形抽象的变成两个圈加一个点,第一个圈的面积是。

S=9+4\times (k-1)=5+4\times k

第二个圈的面积是。

S=2\times k+(2\times k-2)=4\times k-4 (k\ne1)

总面积公式便是。

S=4\times k-4+5+4\times k+1=8\times k+2

代码

#include<bits/stdc++.h>
#define endl '\n'
#define kuaitou ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define baoliu(n) fixed<<setprecision(n)
using namespace std;
int main(){
    kuaitou;
    int n;//定义边长
    cin>>n;//输入
    if(n==1){//特判如果是1
        cout<<"11";//直接输出答案
        return 0;//完结散花?
    }
    cout<<8*n+2;//输出
    return 0;//完结散花
}

AC记录