立体井字棋
题目大意
在nnn的立方体中放n个子,有
求多少种布子方案可以使这n个子连成一条线。
样例输入
2
样例输出
28
数据范围
对于30%的数据, n<=10;
对于100%的数据, n <= 1000。
思路
这道题就是一道用公式做的题。
把线延长,并穿透原本的线,然后每条多了2也就是
n
+
2
n+2
n+2,因为他是立体的,所以是
(
(
n
+
2
)
∗
(
n
+
2
)
∗
(
n
+
2
)
)
=
(
(
n
+
2
)
3
)
((n+2)∗(n+2)∗(n+2))=((n+2)3)
((n+2)∗(n+2)∗(n+2))=((n+2)3),再减去
n
∗
n
∗
n
(
n
3
)
n∗n∗n(n^3)
n∗n∗n(n3)再除以2。
那么公式就是: ( ( n + 2 ) 3 − n 3 ) / 2 ((n+2)^3-n^3)/2 ((n+2)3−n3)/2
代码
#include<cstdio>
using namespace std;
int n;
int main()
{
//freopen("tictac.in","r",stdin);
//freopen("tictac.out","w",stdout);
scanf("%d",&n);//读入
printf("%d",((n+2)*(n+2)*(n+2)-n*n*n)/2);//公式
fclose(stdin);
fclose(stdout);
return 0;
}