Bueno, probando con casos pequeños te darás cuenta que puedes usar (n-2m+1)n!, dónde "n" es la cantidad de libros y "m" la mínima cantidad por repisa, dónde m > 0 y 2m ≤ n, para dos repisas, ya que tan solo imagina que si la cantidad de libros en la primera repisa es "a" y en la segunda es "b" , entonces contando de izquierda a derecha el primer libro de la primera repisa tendrá la posición 1, el segundo la posición 2, etc, y el primer libro de la segunda repisa tendrá la posición "a+1" y el segundo "a+2", etc, entonces si permutas esos "a+b"(n) y lo multiplicas por el número de casos dependiendo del mínimo de libros por repisa(n-2m+1), ese será el total de formas a colocar los libros.