zoukankan      html  css  js  c++  java
  • POJ 1046 Color Me Less 最详细的解题报告

    题目来源:POJ 1046 Color Me Less

    题目大意:每一个颜色由R、G、B三部分组成,D=Math.sqrt(Math.pow((left.red - right.red), 2)+ Math.pow((left.green - right.green), 2)+ Math.pow((left.blue - right.blue), 2)) 表示两个不同颜色的之间的距离(以left和right为例,left和right分别为两种不同的颜色),现给出16组目标颜色,剩下的为待匹配的颜色,求出剩下的颜色与目标颜色中哪个最匹配,即D最小。

    解题思路:直接枚举法,简单直接!

    具体算法(java版,可以直接AC)

     1 import java.util.Scanner;
     2 
     3 public class Main {
     4 
     5     static double distance(Color left, Color right) {
     6         return Math.sqrt(Math.pow((left.red - right.red), 2)
     7                 + Math.pow((left.green - right.green), 2)
     8                 + Math.pow((left.blue - right.blue), 2));
     9     }
    10 
    11     static Color getColor(Scanner input) {
    12         return new Color(input.nextInt(), input.nextInt(), input.nextInt());
    13     }
    14 
    15     public static void main(String[] args) {
    16         Scanner input = new Scanner(System.in);
    17         int targetCount = 16;
    18         Color[] targets = new Color[targetCount];
    19         for (int i = 0; i < targetCount; i++) {
    20             targets[i] = getColor(input);
    21         }
    22         while (true) {
    23             Color object = getColor(input);
    24             if (object.isEnd()) {
    25                 return;
    26             }
    27             double min = Double.MAX_VALUE;
    28             int minIndex = 0;
    29             for (int i = 0; i < targetCount; i++) {
    30                 double dist = distance(targets[i], object);
    31                 if (dist < min) {
    32                     min = dist;
    33                     minIndex = i;
    34                 }
    35             }
    36             System.out.println(String.format("%s maps to %s", object.toString(),
    37                     targets[minIndex].toString()));
    38         }
    39     }
    40 }
    41 
    42 class Color {
    43     public int red;
    44     public int green;
    45     public int blue;
    46 
    47     public Color(int red, int green, int blue) {
    48         this.red = red;
    49         this.green = green;
    50         this.blue = blue;
    51     }
    52 
    53     public boolean isEnd() {
    54         return this.red == -1 && this.green == -1 && this.blue == -1;
    55     }
    56 
    57     public String toString() {
    58         return String.format("(%d,%d,%d)", this.red, this.green, this.blue);
    59     }
    60 }
  • 相关阅读:
    值类型、引用类型的区别
    SharePoint Server 2013 Excel Web Access无法显示
    SharePoint 2013报错之“指定的文件不是有效的电子表格或者没有包含要导入的数据”
    SharePoint 2013备份方法整理
    SQL 2005报错之Restore fail for Server 'DatabaseServerName'.
    SQL Server 2012自动备份
    SharePoint 2013在浏览器中打开pdf文档
    摸鱼,搞RW
    蛋疼的远程声音,这次用蓝牙试试看
    Win10 IoT Core 更改密码(PowerShell)
  • 原文地址:https://www.cnblogs.com/pinxiong/p/4001236.html
Copyright © 2011-2022 走看看