JDOJ3008 圆盘染色
JDOJ3008 圆盘染色
https://neooj.com/oldoj/problem.php?id=3008
题目描述
将一个圆盘分为N (1 <= N <= 105)个扇形,每个扇形可涂红R、黄G、蓝B三种颜色中的一种,但相邻两个扇形的颜色必须不同,问有多少种涂法。
输入
输入一个整数N,表示将圆盘分为多少个扇区。
输出
输出一个整数,表示N个扇区染成RGB,相邻扇区颜色不同的方案数,答案可能会很大,结果模上2333333。
样例输入
3
样例输出
6
圆盘染色也是递推的一个经典题目
Code:
#include<bits/stdc++.h> int f[100100]; int main() { int n; scanf("%d",&n); f[0]=0; f[1]=3; f[2]=6; f[3]=6; for(int i=4;i<=n;i++) { f[i]=(f[i-1]+f[i-2]*2)%2333333; } printf("%d",f[n]); return 0; }