#P8187. [USACO22FEB] Robot Instructions S

[USACO22FEB] Robot Instructions S

题目描述

Bessie is learning how to control a robot she has recently received as a gift. The robot begins at point (0,0)(0,0) on the coordinate plane and Bessie wants the robot to end at point (xg,yg)(x_g,y_g). Bessie initially has a list of NN (1N40)(1\le N\le 40) instructions to give to the robot, the ii-th of which will move the robot xix_i units right and yiy_i units up (or left or down when xix_i and yiy_i are negative, respectively).

For each KK from 11 to NN, help Bessie count the number of ways she can select KK instructions from the original NN such that after the KK instructions are executed, the robot will end at point (xg,yg)(x_g,y_g).

Note: the time and memory limits for this problem are 4s and 512MB, twice the defaults.

输入格式

The first line contains NN. The next line contains xgx_g and ygy_g, each in the range 109109−10^9\cdots 10^9. The final NN lines describe the instructions. Each line has two integers xix_i and yiy_i, also in the range 109109−10^9\cdots 10^9.

It is guaranteed that (xg,yg)(0,0)(x_g,y_g)\neq (0,0) and (xi,yi)(0,0)(x_i,y_i)\neq (0,0) for all ii.

输出格式

Print NN lines, the number of ways Bessie can select KK instructions from the original NN for each KK from 11 to NN.

题目大意

题目描述

贝西正在学习如何控制她最近作为礼物收到的机器人。

机器人初始在坐标平面上的点 (0,0)(0,0),Bessie 希望机器人在点 (xg,yg)(x_g,y_g) 停止。 Bessie 最初有一个包含 N(1N40)N(1\leq N \leq 40) 条指令的指令列表给机器人,其中第 ii 个指令将向右移动机器人 xix_i 单位和向上移动 yiy_i 单位(或者当 xix_iyiy_i 为负数时分别向左或向下移动)。

对于从 11NN 的每个 KK,帮助 Bessie 计算她可以从原始 NN 中选择 KK 条指令的方案数,使得在执行 KK 条指令后,机器人将在点 (xg,yg)(x_g,y_g) 处停止。

输入格式

第一行包含 NN 。下一行包含 xgx_gygy_g,每个数都在 109109-10^9\dots 10^9 的范围内。最后的 NN 行描述了指令。每行有两个整数 xix_iyiy_i,也在 109109-10^9\dots 10^9 范围内。

保证 (xg,yg)(0,0)(x_g,y_g)\neq (0,0) 和对于所有的 i(xi,yi)(0,0)i,(x_i,y_i)\neq (0,0)

数据范围

数据 242\sim 4 满足 N20N\leq 20

数据 5165\sim 16 无额外约束。

样例解释

在此示例中,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) \to (-2,0) \to (1,0) \to (5,0) \to (5,10) \to (5,0) \to (5,10)$

7
5 10
-2 0
3 0
4 0
5 0
0 10
0 -10
0 10
0
2
0
3
0
1
0

提示

【样例解释】

In this example, there are six ways Bessie can select the instructions:

(-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)

For the first way, the robot's path looks as follows:

(0,0) -> (-2,0) -> (1,0) -> (5,0) -> (5,10) -> (5,0) -> (5,10)

【数据范围】

  • Test cases 2-4 satisfy N20N\le 20.
  • Test cases 5-16 satisfy no additional constraints.