首页 > 代码库 > [算法]POJ1046

[算法]POJ1046

Color Me Less:

http://poj.org/problem?id=1046

类似于最近邻算法,距离采用传统的欧式距离。

用到的算法:寻找最小元素

以下是c语言实现

 

/*************************************************************************    > File Name: 1046.c    > Author:     > Mail:     > Created Time: 2015年01月20日 星期二 21时30分53秒 ************************************************************************/#include<stdio.h>int find_min(int map[16][3],int r,int g,int b){    int dis[16],min_index=0,min=255*255*255,i;    for(i=0;i<16;i++)    {        dis[i]=(r-map[i][0])*(r-map[i][0])+(g-map[i][1])*(g-map[i][1])+(b-map[i][2])*(b-map[i][2]);    }    for(i=0;i<16;i++)    {        if(dis[i]<min)        {            min_index=i;            min=dis[i];        }    }    return min_index;        }int main(){    int map[16][3];    int index,i,r,g,b;    for(i=0;i<16;i++)    {        scanf("%d %d %d",&map[i][0],&map[i][1],&map[i][2]);    }        scanf("%d %d %d",&r,&g,&b);    while(r>=0)    {        index=find_min(map,r,g,b);        printf("(%d,%d,%d) maps to (%d,%d,%d)\n",r,g,b,map[index][0],map[index][1],map[index][2]);        scanf("%d %d %d",&r,&g,&b);    }    return 0;}

 

[算法]POJ1046