QOJ.ac

QOJ

時間限制: 7 s 記憶體限制: 256 MB 總分: 100

#10715. 方向标志

统计

经过一年的高强度编程工作,Byteasar 即将迎来期待已久的假期。在前往度假地的路上,他看到了许多路标,上面标有到拜特兰(Byteland)各个城镇的距离(单位:公里)。尽管路标上显示的距离是整数,但从路标到相应城镇的实际距离可能不是整数。因此,路标上的距离是向下取整后的结果(即不超过真实距离的最大整数)。

旅行结束后,Byteasar 意识到他看到的这些路标信息看起来很可疑。经过进一步思考,Byteasar 断定这些路标上的距离信息相互矛盾。他认为这是因为缺乏合格的施工人员,导致路政工作由随机雇佣的人员完成。Byteasar 想知道到底有多少个路标给出的距离是错误的。为此,他决定找到一个最大的路标集合,使得这些路标上的距离是相容的。这个问题对 Byteasar 来说太难了,所以他向你寻求帮助。幸运的是,Byteasar 记忆力极好,能够回忆起他看到的所有路标。然而,他在经过路标时并没有看里程表,因此他无法说出他看到这些路标的具体时间,甚至无法确定看到的顺序。

我们假设拜特兰是一条直线,城镇足够小,可以看作该直线上的点。我们还假设在旅途中,Byteasar 没有经过任何城镇。如果存在一种路标和所有城镇在直线上的放置方式,使得路标上显示的距离等于真实距离向下取整后的值,那么这组路标就是相容的。自然地,城镇和路标都不必位于整数坐标点上。没有两个城镇或两个路标可以位于同一点。Byteasar 发誓,至少有 20% 的路标是相容的。由于他很久以前曾担任过路政主管,特别是在他这次旅行所经过的这条路上,你可以将他的这一断言(源于他对合格路政工人比例的估计)视为对输入数据的保证。

输入格式

标准输入的第一行包含两个整数 $n$ 和 $m$ ($1 \le n \le 1000, 1 \le m \le 200$),由空格分隔,分别表示 Byteasar 看到的路标数量和拜特兰的城镇数量。接下来的 $n$ 行,每行描述一个路标;第 $i$ 行包含 $m$ 个整数 $d_{i,1}, d_{i,2}, \dots, d_{i,m}$ ($1 \le d_{i,j} \le 10^6$),由空格分隔,其中 $d_{i,j}$ 是第 $i$ 个路标上显示的到第 $j$ 号城镇的距离(单位:公里),即向下取整后的值。

在总分 60% 的测试点中,满足附加条件 $n \le 500, m \le 50$。其中 40% 的测试点满足 $n \le 100$,更小的一部分(占总分 20%)满足 $n \le 15$。

输出格式

第一行输出一个整数 $t$,表示相容路标的最大数量。第二行输出 $t$ 个整数,表示这些路标的编号。这些编号应按照 Byteasar 在路上可能看到它们的顺序排列。如果存在多种方案,程序可以任意输出其中一种。

样例

输入 1

3 2
2 2
2 3
3 2

输出 1

2
2 1

说明

如果第二个路标位于点 $x = 0$,第一个路标位于点 $x = \frac{1}{2}$,第一个城镇位于点 $x = 2\frac{1}{2}$,第二个城镇位于 $x = 3$,那么路标 1 和 2 上给出的距离就是到城镇的真实距离向下取整后的值。路标 1 和 3 也可以构成相容的放置方式。显然,第二个和第三个路标是矛盾的,因此不存在一种路标和城镇的放置方式,使得所有三个路标给出的都是正确的(向下取整后的)距离。

样例测试说明

  • $n = 5, m = 1$:路标给出了到唯一城镇的不同向下取整距离;
  • $n = 5, m = 2$:每两个路标之间都是矛盾的;任何单个路标都构成正确答案;
  • $n = 200, m = 199$:所有路标的集合是相容的——例如,第 $i$ 个路标可以放置在 $\frac{i}{n}$ 处,第 $j$ 个城镇可以放置在 $10^6 + \frac{j}{n}$ 处。

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.