#P15429. [IOI 2013] Art Class 艺术分类

[IOI 2013] Art Class 艺术分类

说明

你很快就要有一场艺术史的考试了。由于平时在信息学上花的时间太多了,所以你现在需要写一个程序帮自己通过艺术史的考试。

考试内容是对若干幅图画作品的风格进行识别。作品共有四种风格,分别编码为 11223344。每幅作品属于其中的一种风格。

风格 11:新造型主义现代画。例如:

:::align{center}

:::

风格 22:印象派风景画。例如:

:::align{center}

:::

风格 33:表现派细节组合画。例如:

:::align{center}

:::

风格 44:色块组合画。例如:

:::align{center}

:::

你的任务是:对给定的一幅画,确定她所属的风格。

IOI 的裁判们对于每种风格都搜集了很多图像。他们从每种风格的图像中各选了 99 幅图像,并把这些选中的图像放在了你的电脑上。你可以用这些图像测试你的程序。未被选中的图像将在评测中使用。

图像以 H×WH×W 的像素网格的形式给出。行是从上到下编码为 0,,H10,\dots,H - 1,列是从左到右编码为 0,,W10,\dots,W - 1

每个像素点用 R,G,BR,G,B 三个值表示该点的红、绿、蓝的饱和度。分别存在三个二维数组里。R,G,BR,G,B 的取值范围都是 00(没有该种颜色)到 255255(该种颜色取得最大值)。

实现

你需要提交一个文件,文件中实现了一个名为 style() 的函数,形式如下:

你的函数:int style(int H, int W, int R[500][500], int G[500][500], int B[500][500]);

  • 描述:这个函数需要确定输入图像所属的风格。
  • 参数:
    • HH:图像中的行数;
    • WW:图像中的列数;
    • RR:大小为 H×WH×W 的二维数组,表示红色的饱和度;
    • GG:大小为 H×WH×W 的二维数组,表示绿色的饱和度;
    • BB:大小为 H×WH×W 的二维数组,表示蓝色的饱和度;
    • 返回:图像的风格类别,必须为 1,2,31,2,344 中的一种。

每个数组中的 R[i][j]R[i][j],G[i][j]G[i][j]B[i][j]B[i][j] 表示在第 ii 行,第 jj 列的像素的颜色值,取值范围都是 00255255(包括 00255255)。

评分

本题没有子任务。本题分数取决于你的程序对多少图像进行了正确的分类。

假设你成功识别了百分之 PP 的图像(所以有 0P1000 \le P \le 100):

  • 如果 P<25P < 25 那么你会得 00 分。
  • 如果 25P<5025 \le P < 50 那么你会得 001010 分,PP 和得分成线性关系。具体来说,你的得分为 10×(P25)/2510 \times (P - 25) / 25,向下取整。
  • 如果 50P<9050 \le P < 90 那么你会得到 1010100100 分,PP 和得分成线性关系。具体来说你的得分为 10+(90×(P50)/40)10 + (90 \times (P - 50) / 40),向下取整。
  • 如果 90P90 \le P 那么你会得到 100100 分。

输入格式

测试

你电脑上的样例评分程序将读入 artclass.jpg。这个文件包含一个 JPEG 格式的图像。

提示

限制

  • 原题时间限制:55 秒;
  • 原题内存限制:6464 MiB;
  • 100H500100 \le H \le 500
  • 100W500100 \le W \le 500