Galera não estou conseguindo fazer um código em que devo colorir uma matriz 5x5. Só que nessa matriz os elementos que fazem fronteira não podem ter a mesma cor.
Alguem poderia me ajudar?
Galera não estou conseguindo fazer um código em que devo colorir uma matriz 5x5. Só que nessa matriz os elementos que fazem fronteira não podem ter a mesma cor.
Alguem poderia me ajudar?
Colorir aonde?
Seu problema é com a matriz ou com o colorir?
[]'s
E “não estou conseguindo fazer um código” é muito vago. Porque você acha que não está conseguindo? Posto que você tentou fazer.
coloca o seu codigo, pelo visto deve ser simples de resolver… vc ja fez alguma coisa?
http://en.wikipedia.org/wiki/Graph_coloring - voce não estipulou o número de cores. Se houver 25 cores, o seu problema é trivial 
Gostei

Eu fiz ele em c primeiro, pois tenho que criar ele em c e em java.
#include <stdio.h>
#include <stdlib.h>
typedef struct no_grafo
{
int grau;
int cor;
}no;
int main()
{
int i,j,aux, valor, soma; // variaveis de controle
int n, c; // var para guardar o numero de nos e o numero cromatico
c=0;
printf("Numero de nós do grafo:"); //ENTRADA DE DADOS - NUMERO DE NOS E ARESTAS
scanf("%d",&n);
int C[n], M[n][n]; //vetor com as cores e matriz de adjacencias
no N[n]; // vetores para guardar os nos e os nos em ordem de grau
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
if(i<j)
{printf ("Caso o no %d tem aresta para %d, Digite 1, Senão digite 0\n", i+1,j+1);
scanf("%d", &valor);
M[i][j]=valor;}
else
{
M[i][j] = 0;
}
}
}
for(i=0;i<n;i++) //CONTAGEM DO GRAU DE CADA NO
{
for(j=0;j<n;j++)
{
if (M[i][j]==1)
N[i].grau++;
}
}
for(i=0;i<(n-2);i++) //ORDENAR OS NOS POR GRAU
{
for(j=n-1;j>i;j--)
{
if (N[j].grau<N[j-1].grau)
{
aux=N[j].grau;
N[j].grau= N[j-1].grau;
N[j-1].grau=aux;
}
}
}
for (i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(M[i][j]==1 && i!=j)
{
c=c+1;
N[i].cor=C[c];
}
}
}
printf("Numero Cromatico do Grafo = %d",c);
return 0;
}