- 分享
Engeeker公共休息室
- @ 2023-10-9 15:43:46
闲聊群
19 条评论
-
fuxun LV 8 @ 2024-10-26 21:28:12[CSP-J 2024] 地图探险(民间数据)
题目描述
小 A 打算前往一片丛林去探险。丛林的地理环境十分复杂,为了防止迷路,他先派遣了一个机器人前去探路。
丛林的地图可以用一个 行 列的字符表来表示。我们将第 行第 列的位置的坐标记作 。如果这个位置的字符为 ,即代表这个位置上有障碍,不可通过。反之,若这个位置的字符为 ,即代表这个位置是一片空地,可以通过。
这个机器人的状态由位置和朝向两部分组成。其中位置由坐标 刻画,它表示机器人处在地图上第 行第 列的位置。而朝向用一个 的 整数 表示,其中 代表向东, 代表向南, 代表向西, 代表向北。
初始时,机器人的位置为 ,朝向为 。保证初始时机器人所在的位置为空地。接下来机器人将要进行 次操作。每一步,机器人将按照如下的模式操作:
-
假设机器人当前处在的位置为 ,朝向为 。则它的方向上的下一步的位置 定义如下:若 ,则令 ,若 ,则令 ,若 ,则令 ,若 ,则令 。
-
接下来,机器人判断它下一步的位置是否在地图内,且是否为空地。具体地说,它判断 是否满足 ,且 位置上是空地。如果条件成立,则机器人会向前走一步。它新的位置变为 ,且朝向不变。如果条件不成立,则它会执行“向右转”操作。也就是说,令 (即 除以 的余数),且它所处的位置保持不变,但朝向由 变为 。
小 A 想要知道,在机器人执行完 步操作之后,地图上所有被机器人经过的位置(包括起始位置)有几个。
输入格式
本题有多组测试数据。
输入的第一行包含一个正整数 ,表示数据组数。
接下来包含 组数据,每组数据的格式如下:
第一行包含三个正整数 。其中 表示地图的行数和列数, 表示机器人执行操作的次数。
第二行包含两个正整数 和一个非负整数 。
接下来 行,每行包含一个长度为 的字符串。保证字符串中只包含 和 两个字符。其中,第 行的字符串的第 个字符代表的位置为 。这个位置是 即代表它是障碍,否则代表它是空地。数据保证机器人初始时所在的位置为空地。
输出格式
对于每组数据:输出一行包含一个正整数,表示地图上所有被机器人经过的位置(包括起始位置)的个数。
样例 #1
样例输入 #1
2 1 5 4 1 1 2 ....x 5 5 20 1 1 0 ..... .xxx. .x.x. ..xx. x....样例输出 #1
3 13提示
【样例 1 解释】
该样例包含两组数据。对第一组数据,机器人的状态以如下方式变化:
- 初始时,机器人位于位置 ,方向朝西(用数字 代表)。
- 第一步,机器人发现它下一步的位置 不在地图内,因此,它会执行“向右转”操作。此时,它的位置仍然为 ,但方向朝北(用数字 代表)。
- 第二步,机器人发现它下一步的位置 不在地图内,因此,它仍然会执行“向右转”操作。此时,它的位置仍然为 ,但方向朝东(用数字 代表)。
- 第三步,机器人发现它下一步的位置 在地图内,且为空地。因此,它会向东走一步。此时,它的位置变为 ,方向仍然朝东。
- 第四步,机器人发现它下一步的位置 在地图内,且为空地。因此,它会向东走一步。此时,它的位置变为 ,方向仍然朝东。
因此,四步之后,机器人经过的位置有三个,分别为 。
对第二组数据,机器人依次执行的操作指令为:向东走到 ,向东走到 ,向东走到 ,向东走到 ,向右转,向南走到 ,向南走到 ,向南走到 ,向南走到 ,向右转,向西走到 ,向西走到 ,向西走到 ,向右转,向北走到 ,向右转,向右转,向南走到 ,向右转,向右转。
【样例 2】
见选手目录下的 explore/explore2.in 与 explore/explore2.ans。
该样例满足第 个测试点的限制条件。
【样例 3】
见选手目录下的 explore/explore3.in 与 explore/explore3.ans。
该样例满足第 个测试点的限制条件。
【样例 4】
见选手目录下的 explore/explore4.in 与 explore/explore4.ans。
该样例满足第 个测试点的限制条件。
【样例 5】
见选手目录下的 explore/explore5.in 与 explore/explore5.ans。
该样例满足第 个测试点的限制条件。
【数据范围】
对于所有测试数据,保证:,,,,,且机器人的起始位置为空地。
测试点编号 特殊性质 无 地图上所有位置均为空地 无 地图上所有位置均为空地 无 -
-
@ 2024-10-26 20:59:49[CSP-J 2024] 扑克牌
题目描述
小 P 从同学小 Q 那儿借来一副 张牌的扑克牌。
本题中我们不考虑大小王,此时每张牌具有两个属性:花色和点数。花色共有 种:方片、草花、红桃和黑桃。点数共有 种,从小到大分别为 。注意:点数 在本题中记为 。
我们称一副扑克牌是完整的,当且仅当对于每一种花色和每一种点数,都恰好有一张牌具有对应的花色和点数。由此,一副完整的扑克牌恰好有 张牌。以下图片展示了一副完整的扑克牌里所有的 52 张牌。

小 P 借来的牌可能不是完整的,为此小 P 准备再向同学小 S 借若干张牌。可以认为小 S 每种牌都有无限张,因此小 P 可以任意选择借来的牌。小 P 想知道他至少得向小 S 借多少张牌,才能让从小 S 和小 Q 借来的牌中,可以选出 张牌构成一副完整的扑克牌。
为了方便你的输入,我们使用字符 代表方片,字符 代表草花,字符 代表红桃,字符 代表黑桃,这样每张牌可以通过一个长度为 的字符串表示,其中第一个字符表示这张牌的花色,第二个字符表示这张牌的点数,例如 表示草花 , 表示黑桃 (黑桃 10)。
输入格式
输入的第一行包含一个整数 表示牌数。
接下来 行:
每行包含一个长度为 的字符串描述一张牌,其中第一个字符描述其花色,第二个字符描述其点数。
输出格式
输出一行一个整数,表示最少还需要向小 S 借几张牌才能凑成一副完整的扑克牌。
样例 #1
样例输入 #1
1 SA样例输出 #1
51样例 #2
样例输入 #2
4 DQ H3 DQ DT样例输出 #2
49提示
【样例 1 解释】
这一副牌中包含一张黑桃 ,小 P 还需要借除了黑桃 以外的 51 张牌以构成一副完整的扑克牌。
【样例 2 解释】
这一副牌中包含两张方片 、一张方片 (方片 10)以及一张红桃 3,小 P 还需要借除了红桃 3、方片 和方片 以外的 张牌。
【样例 3 解释】
见选手目录下的 poker/poker3.in 与 poker/poker3.ans。
这一副扑克牌是完整的,故不需要再借任何牌。
该样例满足所有牌按照点数从小到大依次输入,点数相同时按照方片、草花、红桃、黑桃的顺序依次输入。
【数据范围】
对于所有测试数据,保证:,输入的 个字符串每个都代表一张合法的扑克牌,即字符串长度为 ,且第一个字符为 中的某个字符,第二个字符为 中的某个字符。
测试点编号 特殊性质 A B 无 特殊性质 A:保证输入的 张牌两两不同。
特殊性质 B:保证所有牌按照点数从小到大依次输入,点数相同时按照方片、草花、红桃、黑桃的顺序依次输入。
-
@ 2024-10-26 20:54:16
完了,我同桌也是(bushi)
-
@ 2024-3-24 16:17:33
-
@ 2024-3-24 16:01:16
-
@ 2024-3-15 20:01:19
-
@ 2024-3-15 19:05:54
-
@ 2024-3-10 15:18:59
-
@ 2024-2-17 22:40:39大佬求带!!!

p2133. 刘谦的魔术时光 有人会做吗?卡在步骤二了!

-
@ 2024-1-1 15:41:11🎉️2024年了,大家新年快乐!!!

新的一年,祝大家一帆风顺、两人同心、三羊开泰、四喜临门、五谷丰登、六六大顺、七星高照、八方进宝、久久登科、十全十美😄 🎉️
-
@ 2023-11-18 23:03:34新改的标签怎么样?
-
@ 2023-11-11 21:47:45注释的作用
代码注释本意是用作解释说明,告诉其他人,我这行代码是什么意思,我为啥这么写。
由于代码注释不会被执行,因此可以妙用注释来“调试”程序。
比如,我有一行代码不知道该怎么写,不知道变量是加1还是减1,那么可以写出这两行,并注释掉其中一行。
int n = 1; // n = n + 1; n = n - 1;这时候,注释就像一个开关,打开哪个开关就运行哪个代码,很方便。
另外,在多数的IDE中,
Ctrl + /就是快速注释这行的快捷键。光标在哪行就注释哪行。 -
@ 2023-11-1 14:43:44谨防电信诈骗

-
@ 2023-10-29 11:19:31import turtle as t pen1 = t.Turtle() # 左侧红 # 250,10,135 # 253,0,85 # 251,77,137 pen2 = t.Turtle() # 中间黄 # 253,213,83 # 253,180,11 # 253,224,85 pen3 = t.Turtle() # 右侧蓝 # 9,74,255 # 20,158,234 # 54,93,185 # 8,79,190 # 20,158,234 # 9,74,255 # 15,0,252 pens = [pen1, pen2, pen3] t.colormode(255) for p in pens: p.speed(10) def rect(pen, col, x, y): pen.color(col) pen.begin_fill() for i in range(2): pen.fd(x) pen.rt(90) pen.fd(y) pen.rt(90) pen.end_fill() def move(pen, x, y): pen.pu() pen.goto(x, y) pen.pd() def arc(pen, col, size, angle): pen.color(col) pen.begin_fill() pen.fd(size) pen.rt(90) pen.circle(-size, angle) pen.rt(90) pen.fd(size) pen.end_fill() # red def pen1go(): move(pen1, -300, 300) rect(pen1, (250, 10, 135), 210, 600) move(pen1, -230, 300) rect(pen1, (253, 0, 85), 140, 600) move(pen1, -160, 300) rect(pen1, (251, 77, 137), 70, 600) # white triangle pen1.color((255, 255, 255)) pen1.begin_fill() move(pen1, -190, 300) pen1.goto(-300, 160) pen1.fd(210) pen1.goto(-190, 300) pen1.end_fill() # while half-circle move(pen1, -195, -300) pen1.dot(70) # yellow def pen2go(): move(pen2, -50, 300) rect(pen2, (253, 213, 83), 210, 600) move(pen2, 0, 300) rect(pen2, (253, 180, 11), 160, 600) move(pen2, 100, 300) rect(pen2, (253, 224, 85), 60, 600) # white rect move(pen2, 100, 250) rect(pen2, (255, 255, 255), 60, 300) # white tuo-circle move(pen2, 160, -50) pen2.color(255, 255, 255) pen2.seth(110) pen2.begin_fill() a = 1 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: # 控制a的变化 a = a+0.27 pen2.lt(3) # 向左转3度 pen2.fd(a) # 向前走a的步长 else: a = a-0.27 pen2.lt(3) pen2.fd(a) pen2.end_fill() # blue def pen3go(): move(pen3, 160, 300) rect(pen3, (9, 74, 255), 210, 50) move(pen3, 160, 250) rect(pen3, (20, 158, 234), 210, 130) # white move(pen3, 371, 250) pen3.seth(180) pen3.color(255,255,255) pen3.begin_fill() pen3.fd(211) pen3.lt(90) pen3.fd(50) pen3.lt(90) pen3.fd(185) pen3.lt(90) pen3.fd(25) pen3.rt(90) pen3.fd(26) pen3.end_fill() move(pen3, 345, 225) pen3.seth(0) arc(pen3, (255,255,255), 25, 90) # arcs arc_cols = [(54, 93, 185), (8, 79, 190), (20, 158, 234), (9, 74, 255), (15, 0, 252)] r = 210 for i in range(5): move(pen3, 160, -90) pen3.seth(90-i*36) arc(pen3, arc_cols[i], r, 36) t.setup(1200, 800) pen1go() pen2go() pen3go() # hide for p in pens: p.ht() t.mainloop() -
@ 2023-10-21 15:25:07
-
@ 2023-10-21 11:09:13发疯的讨论会被删除,严重会被封号。

-
@ 2023-10-20 18:06:19
-
@ 2023-10-9 15:44:10Python的GESP真题也在更新, 会Python的可以去刷一下。
- 1
