QOJ.ac

QOJ

Límite de tiempo: 1 s Límite de memoria: 2048 MB Puntuación total: 100

#2474. 艺术品交易

Estadísticas

画廊里的黑帮偷走了一幅最大的画,在将其卖到黑市之前,需要由专家进行评估。这幅画的构图清晰地遵循了当代 AI 艺术的主流趋势。这幅画可以看作是一个方格网,每个单元格要么是空的,要么是非空的。非空单元格包含以下物体之一:太阳、房屋、卓柏卡布拉(chupacabra)、左斜线、右斜线、鸟、龙(drake)或烤架。如果两个单元格在网格中共享一条边,则它们是相邻的。两个单元格之间的连接是一个单元格序列,其中包含这两个给定的单元格,且序列中每两个连续的单元格在画中都是相邻的。区域是一组单元格。如果区域中任意两个单元格之间都存在连接,则该区域是连通的。

画的价值是以下所有规则所产生价值的总和。

太阳: 一个不包含太阳的非空单元格,如果该单元格与另一个包含太阳的单元格之间的直线上没有其他物体,则该单元格被太阳照亮。直线可以是水平、垂直或对角线(两种对角线方向均适用)。当一个单元格被多个太阳照亮时,它仍然只被计算一次。太阳不能照亮自身。每个被照亮的单元格产生 $100\$$。

最大的鸟: 龙是一种鸟。鸟群是包含鸟的单元格的极大连通区域。鸟群的宽度是鸟群中同一行上连续单元格序列的最大长度。一个鸟群产生 $500\$ \cdot (\text{鸟群的宽度})$。

鸟群周长: 每个鸟群(见上一条规则)产生价值 $60\$ \cdot (\text{鸟群周长})$。鸟群周长是所有将鸟群单元格与不包含鸟的单元格或画外区域分隔开的边的总数。

房屋向上视野: 当一个空单元格位于包含房屋的单元格上方,且它们在同一列,且该空单元格与房屋之间没有非空区域时,该空单元格产生 $10\$$。

$3 \times 3$ 块: 每个唯一的 $3 \times 3$ 块(可能重叠)产生 $1\$$。

动物 I: 每个包含动物的单元格与空单元格之间的边产生 $15\$$。

自由: 如果单元格 X 与画的边界相邻,或者存在从与画边界相邻的单元格到与 X 相邻的单元格的连接,且该连接仅包含空单元格,则 X 是自由单元格。每个非空自由单元格产生 $7\$$。

卓柏卡布拉: 龙是一种鸟。每只可以通过卓柏卡布拉在网格中执行一步国际象棋马步到达的鸟产生 $200\$$。

峰值: 同一行上的一对相邻单元格,其字符为“/\”(依次为左斜线和右斜线),构成一个峰值。峰顶是连接峰值中两个符号最上端点线段的中点。峰值价值等于从该峰顶到网格中另一个峰顶的最大曼哈顿距离。注意,峰值价值是一个整数。当画中至少有两个峰值时,每个峰值 P 产生 $50\$ \cdot (P \text{ 的价值})$。否则,画中单个峰值产生 $0\$$。

龙/烤架: 每个包含龙且至少有一个相邻单元格包含烤架的单元格产生 $500\$$。

最小频率: 物体 X 的频率是整个画中与 X 类型相同的物体(包括 X 本身)的数量。画中每个频率在所有物体类型中最小的单个物体产生 $10\$$。

空区域: 每个空区域产生 $1\$$。

动物 II: 画中所有动物共同产生单一价值 $1\$ \cdot (\text{卓柏卡布拉数量}) \cdot (\text{非龙鸟类数量}) \cdot (\text{龙的数量})$。

房屋向下视野: 当一个空区域位于房屋上方,且它们在同一列,且该空区域与房屋之间没有非空区域时,该空区域产生 $5\$$。

烤架/龙: 每个包含烤架且至少有一个相邻单元格包含龙的单元格产生 $50\$$。

房屋和烤架: 画中的房屋和烤架产生 $3\$ \cdot \min \{ \text{所有房屋数量}, \text{所有烤架数量} \}$。

输入格式

第一行包含一个整数 $N$ ($1 \le N \le 50$),表示画的行数和列数。接下来有 $N$ 行,每行描述画的一行。行中的一个字符代表一个单元格及其内容。

画中字符的含义如下: 空单元格“ ”(空格),太阳“*”,房屋“^”,卓柏卡布拉“!”,左斜线“/”,右斜线“\”,鸟“v”,龙“D”,烤架“G”。

输出格式

输出一个整数,即输入画的价值。

样例

样例输入 1

9
*^!/\vDG
*^!/\vDG
*^!/\vDG
*^!/\vDG
*^!/\vDG
*^!/\vDG
*^!/\vDG
*^!/\vDG
*^!/\vDG

样例输出 1

12672

样例输入 2

3
!
v
D

样例输出 2

2059

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.