Red de conocimiento informático - Material del sitio web - Implementación en lenguaje C de Cow Frisbee Team

Implementación en lenguaje C de Cow Frisbee Team

Sin más preámbulos, vayamos directamente al código (esta pregunta utiliza un algoritmo de búsqueda en profundidad. Cada vaca es equivalente a un nodo. Hay dos posibilidades: subárbol izquierdo y subárbol derecho. Lo último que hay que tener en cuenta es que la suma). gt;0,)

#include lt;iostreamgt;

#include lt;stdio.lt;stdio.hgt;

#include stdio. hgt;

int count=0; //Guarda el número de soluciones factibles.

void feipan(int *rank, int a, int sum, int N, int F); //calcula el número de escenarios

int main()

{

int N, F

coutlt; "Ingrese datos" lt;

cingt; ; gt; F;

int *rango=nuevo int[N];

for(int i=0; ilt; N; i)

{

cingt; gt; ranking[i];

}

int sum=0;

feipan(rank, 0, sum, N, F); // Calcula el número de opciones;

coutlt;lt; "El número de opciones factibles es: "lt; lt;countlt; lt; endl;

Devuelve 0;

}

void feipan(int *rank, int a, int sum, int N, int F)

{

if(agt;=N) //llegar al nodo hoja

{

if(sumF==0amp ;amp;sumgt ;0) //asegúrese de tener cuidado con la suma aquí.gt;0; de lo contrario, es posible hacer que la suma sea un múltiplo de F sin seleccionar ninguna vaca.

{

recuento

recuento=100000000

}

}

else

{

Buscar en el subárbol izquierdo

sum =rank[a]; /p>

feipan(rank, a 1, sum, N, F);

//buscar subárbol derecho

sum-=rank[a];

p>

feipan(rango, a 1, suma, N, F

}

}

);