原题链接

题目大意:一道类似于简单图像压缩的题目。给定一个调色板,然后把24位真彩色按照就近原则聚类。

解法:每个像素的色彩都是RGB三个值,相当于三维空间的一个点。所以当一个新的像素进来时,分别和调色板中的每一个颜色求欧式距离,距离最近的那个点就是应该归属的那个类。

参考代码:

#include<stdio.h>
#include<math.h> #define R 0
#define G 1
#define B 2 int target[16][3]; int main(){
int i,j,min,index;
int RGB[3];
float dist;
for(i=0;i<16;i++){
scanf("%d%d%d",&target[i][R],&target[i][G],&target[i][B]);
}
while(scanf("%d%d%d",&RGB[R],&RGB[G],&RGB[B]))
{
if(RGB[R]==-1||RGB[G]==-1||RGB[B]==-1)
break;
min=3*255*255;
for(i=0;i<16;i++){
dist=(RGB[R]-target[i][R])*(RGB[R]-target[i][R])+(RGB[G]-target[i][G])*(RGB[G]-target[i][G])
+(RGB[B]-target[i][B])*(RGB[B]-target[i][B]);
if(dist<min){
min=dist;
index=i;
}
}
printf("(%d,%d,%d) maps to (%d,%d,%d)\n",RGB[R],RGB[G],RGB[B],target[index][R],target[index][G],target[index][B]); } return 0;
}

ZOJ 1067 Color Me Less的更多相关文章

  1. ZOJ Problem Set - 1067 Color Me Less

    这道题目很简单,考察的就是结构体数组的应用,直接贴代码了 #include <stdio.h> #include <math.h> typedef struct color { ...

  2. zoj 1067

    输入一组RGB颜色列表,每行一个颜色,是三个从0~255的整数 前16行是目标颜色组,-1 -1 -1表示结束   16组颜色以后接下来的几行是需要判断的,看它和哪个颜色的距离D最小,找出这个对应的颜 ...

  3. ZOJ 2301 Color the Ball 线段树(区间更新+离散化)

    Color the Ball Time Limit: 2 Seconds      Memory Limit: 65536 KB There are infinite balls in a line ...

  4. ZOJ 2301 Color the Ball (离散化+线段树)

    题意:有从 1 开始递增依次编号的很多球,开始他们都是黑色的,现在依次给出 n 个操作(ai,bi,ci),每个操作都是把编号 ai 到 bi 区间内 的-所有球涂成 ci 表示的颜色(黑 or 白) ...

  5. POJ题目细究

    acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP:  1011   NTA                 简单题  1013   Great Equipment     简单题  102 ...

  6. 【转】POJ百道水题列表

    以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...

  7. ZOJ 2301 / HDU 1199 Color the Ball 离散化+线段树区间连续最大和

    题意:给你n个球排成一行,初始都为黑色,现在给一些操作(L,R,color),给[L,R]区间内的求染上颜色color,'w'为白,'b'为黑.问最后最长的白色区间的起点和终点的位置. 解法:先离散化 ...

  8. ZOJ 1610 Count the Color(线段树区间更新)

    描述Painting some colored segments on a line, some previously painted segments may be covered by some ...

  9. Color the Ball[HDU1199]

    Color the Ball Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

随机推荐

  1. POJ 1753 Flip Game 状态压缩,暴力 难度:1

    Flip Game Time Limit: 1000MS  Memory Limit: 65536K  Total Submissions: 4863  Accepted: 1983 Descript ...

  2. C#同一位置切换显示两个Panel内容

    如果两个panel重合在一起,点击不同按钮切换显示不同的panel,需要xxx.BringToFront(); 1.首先让两个panel的visible都为false, 在加载页面load方法里可以让 ...

  3. ROS的文件系统 (二)

    ROS的文件系统的基本概念, ROS文件系统中的两个最基本的概念:Package和Manifest,即包和清单文件. Package是组织ROS代码的最基本单位,每一个Package都可以包括库文件, ...

  4. 开通了cnblogs

    受够了百度空间,换个地方,或许会更好. 以后有机会会将百度空间你的文章搬过来的.

  5. [开发笔记]-Visual Studio 2012中为创建的类添加注释的模板

    为类文件添加注释,可以让我们在写代码时能够方便的查看这个类文件是为了实现哪些功能而写的. 一:修改类文件模板 找到类模版的位置:C:\Program Files (x86)\Microsoft Vis ...

  6. 戴文的Linux内核专题:08内核配置(4)

    转自Linux中国 这个第四部分里,我们将继续配置更多的设置和特性. 这里我们被问及关于"IBM Calgary IOMMU support (CALGARY_IOMMU)".这个 ...

  7. jquery animate()方法使用的注意事项

    当使用 animate() 时,必须使用 Camel 标记法书写所有的属性名,比如,必须使用 paddingLeft 而不是 padding-left,使用 marginRight 而不是 margi ...

  8. DotNetBar v12.1.0.0 Fully Cracked

    更新信息: http://www.devcomponents.com/customeronly/releasenotes.asp?p=dnbwf&v=12.1.0.0 如果遇到破解问题可以与我 ...

  9. 【转发】CentOS 7 巨大变动之 systemd 取代 SysV的Init

    1 systemd是什么 首先systmed是一个用户空间的程序,属于应用程序,不属于Linux内核范畴,Linux内核的主要特征在所有发行版中是统一的,厂商可以自由改变的是用户空间的应用程序.   ...

  10. T-sql语句

    在用代码编辑数据库时,首先要启动WAMPSERVER 1.创建表 create table Car ( Code varchar(50) primary key , Name varchar(50) ...