想查看其他题的真题及题解的同学可以前往查看:CCF-CSP真题附题解大全

试题编号:202309-1试题名称:坐标变换(其一)时间限制:1.0s内存限制:512.0MB问题描述: 问题描述 对于平面直角坐标系上的坐标 (x,y),小 P 定义了一个包含 n 个操作的序列 T=(t1,t2,⋯,tn)。其中每个操作 ti(1≤i≤n)包含两个参数 dxi 和 dyi,表示将坐标 (x,y) 平移至 (x+dxi,y+dyi) 处。 现给定 m 个初始坐标,试计算对每个坐标 (xj,yj)(1≤j≤m)依次进行 T 中 n 个操作后的最终坐标。 输入格式 从标准输入读入数据。 输入共 n+m+1 行。 输入的第一行包含空格分隔的两个正整数 n 和 m,分别表示操作和初始坐标个数。 接下来 n 行依次输入 n 个操作,其中第 i(1≤i≤n)行包含空格分隔的两个整数 dxi、dyi。 接下来 m 行依次输入 m 个坐标,其中第 j(1≤j≤m)行包含空格分隔的两个整数 xj、yj。 输出格式 输出到标准输出中。 输出共 m 行,其中第 j(1≤j≤m)行包含空格分隔的两个整数,表示初始坐标 (xj,yj) 经过 n 个操作后的位置。 样例输入

3 2 10 10 0 0 10 -20 1 -1 0 0

样例输出

21 -11 20 -10

样例说明 第一个坐标 (1,−1) 经过三次操作后变为 (21,−11);第二个坐标 (0,0) 经过三次操作后变为 (20,−10)。 评测用例规模与约定 全部的测试数据满足:n,m≤100,所有输入数据(x,y,dx,dy)均为整数且绝对值不超过 100000。

真题来源:坐标变换(其一)

 感兴趣的同学可以如此编码进去进行练习提交

python题解: 

n, m = map(int,input().split())

temp_x = temp_y = 0

for i in range(n):

x1, y1 = map(int, input().split())

temp_x += x1

temp_y += y1

for i in range(m):

x, y = map(int, input().split())

x += temp_x

y += temp_y

print('{} {}'.format(x,y))

运行结果:

c++满分题解:

#include

using namespace std;

int n, m;

int temp_x=0, temp_y=0;

int x, y;

int main()

{

cin >> n >> m;

for (int i = 0; i < n; i++)

{

cin >> x >> y;

temp_x += x;

temp_y += y;

}

for (int i = 0; i < m; i++)

{

cin >> x >> y;

x += temp_x;

y += temp_y;

cout << x <<" "<< y << "\n";

}

cout << endl;

return 0;

}

 运行结果:

 Java满分题解:

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

int n = in.nextInt();

int m = in.nextInt();

int temp_x = 0;

int temp_y = 0;

for( int i = 1; i <= n; i++ ) {

int x = in.nextInt();

int y = in.nextInt();

temp_x += x;

temp_y += y;

}

for( int i = 1; i <= m; i++ ) {

int x = in.nextInt();

int y = in.nextInt();

x += temp_x;

y += temp_y;

System.out.println(x+" "+y);

}

}

}

  运行结果:

 

好文链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。