Advertisement

UVa 11134 测试与训练(Fabled Rooks)

阅读量:

题意:
你的任务是在一个n*n的棋盘上放置n个车,要求任意两个车之间不能互相攻击,并且第i个车必须位于给定的矩形Ri范围内。矩形由四个整数xl,yl,xr,yr进行描述,其中前两个数值代表矩形左上角的坐标,后两个数值则表示矩形右下角的坐标。因此,第i个车的位置(x, y)需要满足xl ≤ x ≤ xr以及yl ≤ y ≤ yr。如果无法找到符合条件的解,则输出“IMPOSSIBLE ”(注意该字符串末尾包含一个空格)。若存在解,则输出n行,依次列出每个矩形中车的具体坐标。

审题:
这个题目是否与八皇后问题有相似之处?然而考虑到数据规模,显然不能采用搜索与回溯的方法进行暴力求解,因此想到使用贪心策略来处理。

这与
区间选点问题 的二维形式具有一定的相似性
对于对区间选点问题存在疑问的同学,以下将简要地进行说明

在这里插入图片描述

例如在该图中,若我们设定每个区域的范围均为 [a,b],则可以观察到需要将这些区域按照b的值从小到大进行排序。接着,再依据区域的长度进行筛选。假设b的值相同的情况下,应优先将a较大的区域排在前面,这背后的逻辑是什么呢?

原因在于,当a较大

全部评论 (0)

还没有任何评论哟~