南昌网络赛 Coloring Game 思维

题目链接:https://nanti.jisuanke.com/t/38227

题意:2*n的方格,可以走8个方向,从左上走到右下,走的地方变成黑色,问形成的图形的种类有多少

题解:第一列和最后一列有两种选择,剩下的格子要不要,每一列有3中选择,要哪个和都要,结果就是4*3^n-2

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=1e9+7;
ll n;
ll ksm(ll a,ll b)
{
	ll res=1;
	while(b)
	{
		if(b&1) res=res*a%mod;
		b>>=1;
		a=a*a%mod;
	}
	return res;
}
int main()
{
	while(~scanf("%lld",&n))
	{
		if(n==1) printf("1\n");
		else
		{
			printf("%lld\n",ksm(3,n-2)*4%mod);
		}
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/mmk27_word/article/details/89421456