【CSP】202309-1_坐标变换(其一)Python实现

文章目录

    • @[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(1in)包含两个参数 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)(1jm)依次进行 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(1in)行包含空格分隔的两个整数 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(1jm)行包含空格分隔的两个整数 x j x_{j} xj y j y_{j} yj

输出格式

  • 输出到标准输出中
  • 输出共 m m m行,其中第 j ( 1 ≤ j ≤ m ) j (1 \leq j \leq m) j(1jm)行包含空格分隔的两个整数,表示初始坐标 ( 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,m100,所有输入数据 ( 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)

你可能感兴趣的:(刷题,#,CSP,刷题,CSP,Python)