#jfilm. 2026暑假CSP-J模拟赛01-T1 程老师的胶片暗房

2026暑假CSP-J模拟赛01-T1 程老师的胶片暗房

时间限制:1000ms 内存限制:512MB

题目描述

程老师的实验室角落里有一间小小的暗房。暗房的工作台上放着一叠透明胶片,每张胶片上都印着若干个彩色标记点。程老师经常用这些胶片来做光学实验——把胶片叠放在灯箱上,观察光线透过标记点后在墙上投射出的图案。

为了得到不同的投影效果,程老师发明了三种"翻片手法"。每次翻动,工作台上所有胶片会同时受到影响,就像一整叠胶片被一起翻转一样。

第一种手法:左右翻面(记作 X

想象你站在工作台的正前方,用手捏住胶片的左边缘和右边缘,然后像翻书一样把胶片左右对调。翻完之后,原来在右边的标记点跑到了左边,原来在左边的跑到了右边。用坐标来说,如果一个标记点原来在 (x,y)(x, y),左右翻面后它就到了 (x,y)(-x, y)——xx 坐标取反,yy 坐标不变。

第二种手法:上下翻面(记作 Y

这次你捏住胶片的上边缘和下边缘,像翻煎饼一样把胶片上下对调。翻完后,原来在上面的标记点跑到了下面,原来在下面的跑到了上面。用坐标来说,(x,y)(x, y) 变成了 (x,y)(x, -y)——xx 坐标不变,yy 坐标取反。

第三种手法:对角翻转(记作 S

这个手法稍微复杂一些。想象胶片是一面正方形的镜子,你沿着从左下角到右上角的那条对角线(主对角线)把胶片"折"过去——左下方的点映射到右上方,右上方的点映射到左下方。用坐标来说,(x,y)(x, y) 变成了 (y,x)(y, x)——xx 坐标和 yy 坐标互换。

程老师会连续执行多次翻片手法。现在,程老师告诉你胶片上一共有 nn 个标记点的初始位置,以及他接下来要按顺序执行的 mm 次翻片手法。请你帮他算出,经过所有翻片之后,每个标记点最终会在什么位置。

输入格式

第一行两个整数 n,mn, m,分别表示标记点的数量和翻片手法的次数。

第二行一个长度为 mm 的字符串,每个字符是 XYS 之一,表示按顺序执行的翻片手法。

接下来 nn 行,每行两个整数 xi,yix_i, y_i,表示第 ii 个标记点的初始坐标。

输出格式

输出 nn 行,每行两个整数 xi,yix'_i, y'_i,表示第 ii 个标记点经过所有翻片后的最终坐标。

数据范围

测试点编号 nn mm 特殊性质
1 =1=1 10\le 10
2~3 10\le 10 A
4~5 100\le 100
6~8 1000\le 1000
9~10 104\le 10^4
11~14 105\le 10^5 103\le 10^3
15~16 105\le 10^5 B
17~20
  • 特殊性质 A:操作串只含 S
  • 特殊性质 B:操作串不含 S
  • 对于所有数据,1n,m1051 \le n, m \le 10^5xi,yi109|x_i|, |y_i| \le 10^9

样例

样例输入 1

2 3
XSY
1 2
-3 4

样例输出 1

2 1
4 -3

样例输入 2

1 1
S
5 -7

样例输出 2

-7 5

样例输入 3

1 2
XX
3 4

样例输出 3

3 4

样例解释

样例 1:点 (1,2)(1, 2):执行 X 后变为 (1,2)(-1, 2),执行 S 后变为 (2,1)(2, -1),执行 Y 后变为 (2,1)(2, 1)。点 (3,4)(-3, 4):执行 X 后变为 (3,4)(3, 4),执行 S 后变为 (4,3)(4, 3),执行 Y 后变为 (4,3)(4, -3)

难度 普及-
通过率 30%
尝试 10
已通过 3
ID
683
类型
传统题
Time Limit
1000ms
Memory Limit
512MiB
上传者

相关

在下列比赛中:

暑假CSP-J模拟赛 第1场