您的位置:首页 > 其它

A - 不容易系列之(3)—— LELE的RPG难题

2017-07-06 10:48 169 查看


哈哈,其实这道题,第一眼看过去立马想到的是m图着色问题,不过听说小伙伴都说报超时,就转换了思路去找规律,结果还真找到了,具体如下:
假设颜色为123三种
首先确定 n=1时 ans=3,n=2,ans=6,n=3,ans=6;
在自己找n=4的时候,1.当n=3使用的全排列时  eg: 123x x即为要填入的颜色,这种情况下,你会发现x现在只有一种情况可选,即x=2,类似,132x,只有x=3,所以这种情况下的数值即为n=3的ans。2.当n=3使用的是n=2的情况下后加一个数值,eg: 121x ,在这种情况下,x前一位的颜色是确定的,因为其他的填法已经在n=3的时候考虑到了,但此时的x可以选取2和3两种颜色,类似 131x x前一种颜色只能为1,x可以选取2和3,所以这种情况下的数值即为n=2的2*ans;
综上所述,a
=a[n-1]+2*a[n-2]; a 数组对应的值即为所求。


代码如下:
#include<cstdio>
#include<cstring>
using namespace std;
long long int a[100];
main (){
a[1]=3,a[2]=6,a[3]=6;
for(int i=4;i<51;i++)
a[i]=2*(a[i-2])+a[i-1];
int n;
while(~scanf("%d",&n)){
printf("%lld\n",a
);
}
}



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ACM OJ