Yo sólo podía llegar a una solución para el sistema lineal (no circular) en la versión con el tiempo la complejidad de la $O(n^3)$.
Vamos $f(n,m,k,c,d)$ ($c,d\in\{0,1\}$) ser el número de colocaciones de personas $a_1,a_2,\ldots,a_n,b_1,b_2,\ldots,b_m$ en las posiciones $1,2,\ldots,n$, de modo que hay exactamente $k$ feliz a la gente (lineal y no circular por el momento) entre el $a_i$ $b_1,b_2,\ldots,b_r$ están colocados, y:
- $c=0$ para las colocaciones de s.t. $a_n$ no está colocado.
- $c=1$ para las colocaciones de s.t. $a_n$ se coloca.
- $d=0$ para las colocaciones de s.t. no es $i$ s.t. $b_i\to n$.
- $d=1$ para las colocaciones de s.t. $b_1\to n$.
Deje $f(n,m,k,*,?)=mf(n,m,k,*,0)+f(n,m,k,*,1)$ arbitrarias $*$.
Deje $f(n,m,k,?,*)=f(n,m,k,0,*)+f(n,m,k,1,*)$ arbitrarias $*$.
Entonces:
$f(n,m,k,0,0)=f(n-1,m,k-1,0,?)+\text{if}(m>1,(m-1)f(n-1,m,k,0,?),0)+mf(n-1,m,k,1,?)$
$f(n,m,k,0,1)=f(n-1,m-1,k,?,?)$
$\begin{align}
f(n,m,k,1,0)&=f(n-1,m,k-1,?,?)+f(n-1,m,k-2,0,1)\\
&\quad+mf(n-1,m+1,k-1,0,1)+f(n-1,m+1,k-1,0,0)\\
&\quad+\text{if}(m>0,mf(n-1,m+1,k-1,0,1),0)+(m+1)f(n-1,m+1,k,1,1)\\
&\quad+\text{if}(m>0,m(mf(n-1,m+1,k,0,1)+f(n-1,m+1,k,0,0)),0)\\
&\quad+(m+1)(mf(n-1,m+1,k,1,1)+f(n-1,m+1,k,1,0))
\end{align}
$
Como una ilustración, la fórmula de arriba cubre los casos:
- $a_n\to n$:
$f(n-1,m,k-1,?,?)$
- $a_{n-1}\to n$, $a_n\to n-1$:
$f(n-1,m,k-2,0,1)$
- $a_{n-1}\to n$, $a_n\to \{1,\ldots,n-2\}$, $b_i\to n-1$:
$mf(n-1,m+1,k-1,0,1)$
- $a_{n-1}\to n$, $a_n\to \{1,\ldots,n-2\}$, No $b_i\to n-1$:
$f(n-1,m+1,k-1,0,0)$
- $a_n\to n-1$, $a_i\to n$ para $i\ne n-1$, $a_{n-1}$ no se coloca:
$\text{if}(m>0,mf(n-1,m+1,k-1,0,1),0)$
- $a_n\to n-1$, $a_i\to n$ para $i\ne n-1$, $a_{n-1}$ se coloca:
$(m+1)f(n-1,m+1,k,1,1)$
-
$a_n\to \{1,\dots,n-2\}$, $a_i\to n$ para $i\ne n-1$ y el:
una. $a_{n-1}$ no está:
$\text{if}(m>0,m(mf(n-1,m+1,k,0,1)+f(n-1,m+1,k,0,0)),0)$
b. $a_{n-1}$ se coloca:
$(m+1)(mf(n-1,m+1,k,1,1)+f(n-1,m+1,k,1,0))$
$f(n,m,k,1,1)=f(n-1,m,k-1,?,1)+\text{if}(m>1,(m-1)f(n-1,m,k,?,1),0)+f(n-1,m,k,?,0)$
Entonces la respuesta para el número de permutaciones $\sigma$, de modo que $k$ de los números de satisfacer $\sigma(i)\in \{i-1,i,i+1\}$$f(n,0,k,?,?)$.