[算法]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)
",r,g,b,map[index][0],map[index][1],map[index][2]);
        scanf("%d %d %d",&r,&g,&b);
    }



    return 0;
}
原文地址:https://www.cnblogs.com/taokongcn/p/4237554.html