QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 256 MB Total points: 100

#22337. 农场危机

Statistics

Farmer John 与他奇特的舞蹈牛群正排练新音乐剧《欲望号街牛》。排练中某时,奶牛叠成 $N$ $(1 \le N \le 1,000)$ 组,每组 30 头,一头站在另一头背上(真是神奇的牛)。牧场上除了这些牛堆,另有位于不同位置的 $M$ $(1 \le M \le 1,000)$ 个草堆。下图是可能的布局,C 表示 30 头牛的堆,H 表示草堆:

                8 .........
                7 ....CH.H.         C = stack of 30 cows
                6 .........
                5 .........         H = haystack
                4 ..C.HH...
                3 .........
                2 .....C.HH
                1 .........
                  123456789

作为音乐剧指挥,Farmer John 有四种音调的哨子,分别命令每堆最底下的牛连同其上的所有牛向北、南、东或西移动一个单位。

每当牛堆进入有草堆的格点,最顶上的牛(即使只剩一头)就跳上草堆,其余牛移到草堆所在位置。因此,底下的牛遇到 30 次草堆(可不同,也可重复)后,30 头全落在草堆上,或草堆上的牛背上,原牛堆便耗尽。坚固的每个草堆可以支撑无限头牛。

Farmer John 朝牧场另一侧 Farmer Don 的挤奶设施看去,惊恐地发现巨大奶罐爆炸,牛奶巨浪冲向表演中的牛!草堆上的牛安全,因此他必须把原本简单的舞蹈变成救命技法,尽量救更多牛。

给定浪潮到达前可吹哨次数 $K$ $(1 \le K \le 30)$,以及 $N$ 堆牛、$M$ 个草堆的坐标 $X_{i}$、$Y_{i}$ $(1 \le X_{i} \le 1,000; 1 \le Y_{i} \le 1,000)$(草堆当前均无牛),求最多能救的牛数及对应吹哨序列。以 E、N、W、S 分别表示东、北、西、南;最优序列中取字典序最小的。输入中牛堆与草堆的初始位置不重合。

牛可以移到任意位置,包括牧场外。

输入格式

  • 第 1 行:空格分隔的三个整数 $N$、$M$ 和 $K$。
  • 第 $2,\ldots,N+1$ 行:第 $i+1$ 行以两个空格分隔的整数 $X_{i}$ 和 $Y_{i}$ 描述一堆 30 头牛的 $X$、$Y$ 坐标。
  • 第 $N+2,\ldots,N+M+1$ 行:第 $i+N+1$ 行以两个空格分隔的整数 $X_{i}$ 和 $Y_{i}$ 描述草堆的 $X$、$Y$ 坐标。

输出格式

  • 第 1 行:一个整数,最多可救的牛数。
  • 第 2 行:$K$ 个字符,救牛数最多且字典序最小的命令序列。

样例

输入格式 1

3 6 3
3 4
6 2
5 7
8 2
9 2
6 4
5 4
6 7
8 7

输出格式 1

6
EEE

说明

吹三次向东的哨子,随后牛奶淹没牧场。每个草堆最终救下一头牛。

题目作者:Thomas Williamson,2004

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.