题目:
题解:
我们先在每一个正五边形上切一刀,然后就可以发现有4n个点,4n条边,是一个环套树,还需要切一条边。就可以发现一定有一个五边形被切了两条边,而一定有一条边在中间的n边形上。
拆掉两条边的多边形有n种选择,除了中间那一条边还有4种选择,剩下的五边形在5条边中任意切除一条
答案就是
4n∗5n−1
代码:
#include <cstdio>
#include <iostream>
#define LL long long
using namespace std;
const int ATP=2007;
LL ksm(LL k)
{
LL ans=1,a=5;
for (;k;k>>=1,a=a*a%ATP)
if (k&1) ans=a*ans%ATP;
return ans;
}
int main()
{
int T,i,n,m;
scanf("%d",&T);
while (T--)
{
scanf("%d",&n);
printf("%d\n",4*n%ATP*ksm(n-1)%ATP);
}
}