P8187 [USACO22FEB] Robot Instructions S

题目描述

Bessie 正在学习如何控制她最近收到的一个机器人。机器人从坐标平面上的点 $(0,0)$ 开始,Bessie 希望机器人最终停在点 $(x_g,y_g)$。Bessie 最初有一个包含 $N$ 条指令的列表($1 \le N \le 40$),第 $i$ 条指令会将机器人向右移动 $x_i$ 个单位,向上移动 $y_i$ 个单位(当 $x_i$ 和 $y_i$ 为负数时,分别向左和向下移动)。对于每一个从 $1$ 到 $N$ 的 $K$,帮助 Bessie 计算她可以从原始 $N$ 条指令中选择 $K$ 条指令的方式数,使得在执行完这 $K$ 条指令后,机器人将停在点 $(x_g,y_g)$。注意:本题的时间和内存限制为 4 秒和 512MB,是默认值的两倍。

输入格式

第一行包含 $N$。下一行包含 $x_g$ 和 $y_g$,范围为 $-10^9 \cdots 10^9$。接下来的 $N$ 行描述了指令。每行有两个整数 $x_i$ 和 $y_i$,范围也为 $-10^9 \cdots 10^9$。保证 $(x_g,y_g) eq (0,0)$ 且对所有 $i$,$(x_i,y_i) eq (0,0)$。

输出格式

输出 $N$ 行,对于每个从 $1$ 到 $N$ 的 $K$,Bessie 可以从原始 $N$ 条指令中选择 $K$ 条指令的方式数。

说明/提示

【样例解释】在这个例子中,有六种方式 Bessie 可以选择指令: ``` (-2,0) (3,0) (4,0) (0,10) (0,-10) (0,10) (1 2 3 5 6 7) (-2,0) (3,0) (4,0) (0,10) (1 2 3 5) (-2,0) (3,0) (4,0) (0,10) (1 2 3 7) (5,0) (0,10) (0,-10) (0,10) (4 5 6 7) (5,0) (0,10) (4 5) (5,0) (0,10) (4 7) ``` 对于第一种方式,机器人的路径如下: ``` (0,0) -> (-2,0) -> (1,0) -> (5,0) -> (5,10) -> (5,0) -> (5,10) ``` 【数据范围】 - 测试用例 2-4 满足 $N \le 20$。 - 测试用例 5-16 不满足额外的约束条件。 题面翻译由 ChatGPT-4o 提供。