文章目录
-
- @[toc]
-
- 试题编号
- 试题名称
- 时间限制
- 内存限制
- 问题描述
- 输入格式
- 输出格式
- 样例输入
- 样例输出
- 样例说明
- 评测用例规模与约定
- `Python`实现
试题编号
202309-1
试题名称
坐标变换(其一)
时间限制
1.0s
内存限制
512.0MB
问题描述
- 对于平面直角坐标系上的坐标 ( x , y ) (x , y) (x,y),小 P P P定义了一个包含 n n n个操作的序列 T = ( t 1 , t 2 , ⋯ , t n ) T = (t_{1} , t_{2} , \cdots , t_{n}) T=(t1,t2,⋯,tn),其中每个操作 t i ( 1 ≤ i ≤ n ) t_{i} (1 \leq i \leq n) ti(1≤i≤n)包含两个参数 d x i \mathrm{d}x_{i} dxi和 d y i \mathrm{d}y_{i} dyi,表示将坐标 ( x , y ) (x , y) (x,y)平移至 ( x + d x i , y + d y i ) (x + \mathrm{d}x_{i} , y + \mathrm{d}y_{i}) (x+dxi,y+dyi)处
- 现给定 m m m个初始坐标,试计算对每个坐标 ( x j , y j ) ( 1 ≤ j ≤ m ) (x_{j} , y_{j}) (1 \leq j \leq m) (xj,yj)(1≤j≤m)依次进行 T T T中 n n n个操作后的最终坐标
输入格式
- 从标准输入读入数据
- 输入共 n + m + 1 n + m + 1 n+m+1行
- 输入的第一行包含空格分隔的两个正整数 n n n和 m m m,分别表示操作和初始坐标个数
- 接下来 n n n行依次输入 n n n个操作,其中第 i ( 1 ≤ i ≤ n ) i (1 \leq i \leq n) i(1≤i≤n)行包含空格分隔的两个整数 d x i \mathrm{d}x_{i} dxi、 d y i \mathrm{d}y_{i} dyi
- 接下来 m m m行依次输入 m m m个坐标,其中第 j ( 1 ≤ j ≤ m ) j (1 \leq j \leq m) j(1≤j≤m)行包含空格分隔的两个整数 x j x_{j} xj、 y j y_{j} yj
输出格式
- 输出到标准输出中
- 输出共 m m m行,其中第 j ( 1 ≤ j ≤ m ) j (1 \leq j \leq m) j(1≤j≤m)行包含空格分隔的两个整数,表示初始坐标 ( x j , y j ) (x_{j} , y_{j}) (xj,yj)经过 n n n个操作后的位置
样例输入
3 2
10 10
0 0
10 -20
1 -1
0 0
样例输出
21 -11
20 -10
样例说明
- 第一个坐标 ( 1 , − 1 ) (1 , -1) (1,−1)经过三次操作后变为 ( 21 , − 11 ) (21 , -11) (21,−11);第二个坐标 ( 0 , 0 ) (0 , 0) (0,0)经过三次操作后变为 ( 20 , − 10 ) (20 , -10) (20,−10)
评测用例规模与约定
- 全部的测试数据满足: n , m ≤ 100 n , m \leq 100 n,m≤100,所有输入数据 ( x , y , d x , d y ) (x , y , \mathrm{d}x , \mathrm{d}y) (x,y,dx,dy)均为整数且绝对值不超过 100000 100000 100000
Python
实现
n, m = map(int, input().split())
dx = dy = 0
for _ in range(n):
x, y = map(int, input().split())
dx += x
dy += y
for _ in range(m):
x, y = map(int, input().split())
x += dx
y += dy
print(x, y)