1. Título
Tiene una cuadrícula de cuadrícula nx 3. Debe colorear cada cuadrícula con una de rojo, amarillo y verde, y asegurarse de que las cuadrículas adyacentes tengan un color diferente (es decir, cuadrículas con los mismos lados horizontales o verticales Diferentes colores).
Le da el número de filas en el gráfico de cuadrícula n.
Devuelva el número de esquemas pintados a la cuadrícula. Como la respuesta puede ser muy grande, devuelva el resultado del par de respuestas 10 ^ 9 + 7.
示例 1:
输入:n = 1
输出:12
解释:总共有 12 种可行的方法:
示例 2:
输入:n = 2
输出:54
示例 3:
输入:n = 3
输出:246
示例 4:
输入:n = 7
输出:106494
示例 5:
输入:n = 5000
输出:30228214
提示:
n == grid.length
grid[i].length == 3
1 <= n <= 5000
Fuente: LeetCode
Enlace: https://leetcode-cn.com/problems/number-of-ways-to-paint-nx-3-grid Los
derechos de autor pertenecen a la red de deducción. Comuníquese con la autorización oficial para la reimpresión comercial e indique la fuente de la reimpresión no comercial.
2. Resolución de problemas
- El color se divide en 2 tipos de tipo ABA, tipo ABC
- 1 ABA puede producir 3 ABA + 2 ABC
- 1 ABC puede producir 2 ABA + 2 ABC
class Solution {
public:
int numOfWays(int n) {
long aba = 6, abc = 6, aba_t, abc_t, mod = 1e9+7;
for(int i = 1; i < n; ++i)
{
aba_t = (3*aba+2*abc)%mod;
abc_t = (2*(aba+abc))%mod;
aba = aba_t;
abc = abc_t;
}
return (aba+abc)%mod;
}
};
4 ms 5,8 MB