CF1290F.Making Shapes
NOI/NOI+/CTSC
通过率:0%
时间限制:5.00s
内存限制:768MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given n pairwise non-collinear two-dimensional vectors. You can make shapes in the two-dimensional plane with these vectors in the following fashion:
- Start at the origin (0,0).
- Choose a vector and add the segment of the vector to the current point. For example, if your current point is at (x,y) and you choose the vector (u,v), draw a segment from your current point to the point at (x+u,y+v) and set your current point to (x+u,y+v).
- Repeat step 2 until you reach the origin again.
You can reuse a vector as many times as you want.
Count the number of different, non-degenerate (with an area greater than 0) and convex shapes made from applying the steps, such that the shape can be contained within a m×m square, and the vectors building the shape are in counter-clockwise fashion. Since this number can be too large, you should calculate it by modulo 998244353.
Two shapes are considered the same if there exists some parallel translation of the first shape to another.
A shape can be contained within a m×m square if there exists some parallel translation of this shape so that every point (u,v) inside or on the border of the shape satisfies 0≤u,v≤m.
给你 n 个两两不共线的二维向量。你可以用这些向量在二维平面上构造图形,方式如下:
- 从原点 (0,0) 出发;
- 选择一个向量,并将该向量对应的线段添加到当前点。例如,若当前点为 (x,y),你选择了向量 (u,v),则从当前点向点 (x+u,y+v) 画一条线段,并将当前点更新为 (x+u,y+v);
- 重复步骤 2,直到再次回到原点。
每个向量可被重复使用任意多次。
请你统计满足以下所有条件的不同非退化(面积严格大于 0)且凸的图形的个数:
- 图形可通过上述步骤构造;
- 图形可被包含于一个 m×m 的正方形内;
- 构成图形的向量按逆时针顺序排列。
由于答案可能非常大,请对 998244353 取模输出。
若存在某个平移变换能将第一个图形变为第二个图形,则认为这两个图形相同。
一个图形可被包含于一个 m×m 的正方形内,当且仅当存在某个平移变换,使得该图形内部或边界上的任意点 (u,v) 均满足 0≤u,v≤m。
输入格式
The first line contains two integers n and m — the number of vectors and the size of the square (1≤n≤5, 1≤m≤109).
Each of the next n lines contains two integers xi and yi — the x-coordinate and y-coordinate of the i-th vector (∣xi∣,∣yi∣≤4, (xi,yi)=(0,0)).
It is guaranteed, that no two vectors are parallel, so for any two indices i and j such that 1≤i<j≤n, there is no real value k such that xi⋅k=xj and yi⋅k=yj.
第一行包含两个整数 n 和 m —— 向量的个数以及正方形的边长(1≤n≤5,1≤m≤109)。
接下来的 n 行中,每行包含两个整数 xi 和 yi —— 第 i 个向量的 x 坐标和 y 坐标(∣xi∣,∣yi∣≤4,且 (xi,yi)=(0,0))。
保证任意两个向量均不平行,即对任意满足 1≤i<j≤n 的下标 i 和 j,都不存在实数 k,使得 xi⋅k=xj 且 yi⋅k=yj。
输出格式
Output a single integer — the number of satisfiable shapes by modulo 998244353.
输出一个整数——满足条件的形状数量对 998244353 取模的结果。
输入输出样例
输入#1
3 3 -1 0 1 1 0 -1
输出#1
3
输入#2
3 3 -1 0 2 2 0 -1
输出#2
1
输入#3
3 1776966 -1 0 3 3 0 -2
输出#3
296161
输入#4
4 15 -4 -4 -1 1 -1 -4 4 3
输出#4
1
输入#5
5 10 3 -4 4 -3 1 -3 2 -3 -3 -4
输出#5
0
输入#6
5 1000000000 -2 4 2 -3 0 -4 2 4 -1 -3
输出#6
9248783
说明/提示
The shapes for the first sample are:

The only shape for the second sample is:

The only shape for the fourth sample is:

第一个样例的图形如下:

第二个样例的唯一图形是:

第四个样例的唯一图形是:

输入解题思路,AI测评打分。不知道怎么写?