题解:P11871 张灯结彩
这是蒟蒻的第一篇题解……
P11871 张灯结彩 题解
原题戳这里
题目分析
本题为一道较简单的数学题,只要找到了规律就可以 A 掉本题。(其实就是一道小学找规律题……)
其实,题目所给的示意图就已经几乎告诉了我们规律……
仔细观察这张图片,可以发现如下规律:
- 只要不是底部的彩灯,一定会有三根线与下面最相邻的三个彩灯相连。
- 底部的彩灯之间各有两条线与与它相邻的两个彩灯相连(边缘的彩灯除外)。
因为第
接着,由于恒等式
可以得到前
所以,可以发现:
- 上面
n-1 行的电线总数为3\times(n-1)^2 。 - 最下面一行的电线总数为
n-1 。
因此,电线的总数就为
Code
#include <bits/stdc++.h>
using namespace std;
int t, n;
int main() {
scanf("%d", &t);
while(t--) {
scanf("%d", &n);
long long ans = (n - 1) * (n - 1) * 3 + n * 2 - 2;
//我之所以不用 pow() 函数,是因为臭名昭著的浮点数精度问题会影响到答案……
printf("%lld\n", ans);
}
return 0;
}
AC 记录
求管理员大大给过!
UPD 2025/4/16
修复了一处公式错误。