Red de conocimiento informático - Computadora portátil - Lenguaje C, programación de árboles de juicio.

Lenguaje C, programación de árboles de juicio.

Generalmente, el algoritmo de árbol de expansión mínima se utiliza para preguntas de construcción de árboles, pero en vista de la particularidad de su pregunta, puede buscarlo directamente y se puede pasar la complejidad temporal de O(n)

#include

#include

usando el espacio de nombres std;

bool bo[1100];

int n,m,a[1100][1100];

búsqueda vacía(int x){

for(int i=1;i<=a[ x][0 ];i++){//Preguntar si cada punto conectado a x está teñido

int y=a[x][i];

if(!bo[ y ]){//Si y no está teñido, tiñe y y usa y para actualizar otros nodos

bo[y]=1;

search(y);

}

}

}

int main(){

scanf("%d%d",&n ,&m);//Aquí debe ingresar el número de nodos y aristas. Por ejemplo, para su conjunto de datos, ingrese 10 9 para representar 10 puntos y 9 aristas

if(m

por (int i=1;i<=m;i++){

int x,y;scanf("%d%d",&x,&y);

a[x ][++a[x][0]]=y;//Registra que el punto x se puede conectar al punto y, lo mismo a continuación

a[y][++a[y ][ 0]]=x;

}

memset(bo,0,sizeof(bo));// Al principio, no hay ningún nodo excepto el nodo 1 en este gráfico , y luego comienza a colorear del 1 a otros puntos

bo[1]=1;

search(1);

for(int i=1 ; i<=n;i++)

if(!bo[i]){//Si el punto no está teñido, significa que no se puede conectar a un árbol

printf( "NO\ n");

devuelve 0;

}

printf("SÍ\n");

devuelve 0 ;

p>

}