一年只有两场 cf,一场 Goodbye,一场 April Fools Day Contest。
本场总结: Solved 6/9, Ranked 35/6652。题目质量还过得去,不过这次 kit1980 似乎又摸了,梗有点缺乏新意[1],甚至有些向 ctf 靠拢[2]。另外由于逐渐社会,所以全场都用 Python 3 过的题。
[1] April Fools Day 全系列最好的梗,现在想来非 kanban 莫属了
[2] 所以我当初是不是应该去打 ctf 更好啊(但你做出这场的 ctf 题了吗)
A. Is it rated - 2
Solved. 00:00 (+)
No. 去年出过了,今年不会再上当了!比去年多了个多组输入而已。
后面看了一下,我是第六个通过的提交。反应还不够快?
1 | while True: |
B. DMCA
Solved. 00:48 (+4)
本以为谜底会在题目上,没想到在题面里。
In this problem you need to find a root of a number according to this new DMCA law.
实际上跟什么 DMCA 没有啥关系,所谓的root不是指平方根而是指数根。由于样例过于具有迷惑性,所以交了几次无果以后先跳过去了。
当时其实想到了数根这点,但最终忘了具体的定义,写了个求各位数之和没过,也没注意到比平方根多过了一个点。
至于做法,众所周知,数根其实是有规律的,直接模9就行。
1 | n=int(input()) |
C. Fibonacci Words
Solved. 00:21 (+)
斐波那契嘛,就是 F(n)=F(n-1)+F(n-2) 咯。输入全是字母,所以先转成数字序,然后找找模26下的规律就是了。
反正规律是看到了,但 +1 -1 模啥的并没有很明确,随便写了一下,样例过了,皆大欢喜!
1 | s=input() |
D. Xenolith? Hippodrome?
Unsolved.
? 死于词汇量(读题量)
据说是答案在题面上,判断是否是Xenodrome。
场上 Google 了 Xenolith, Hippodrome, Xenodrome, Hippolith,然而并没看出来哪个词是具有含义的。实际上查 Xenodrome 都是无关信息,更应该去 oeis 查询。
E. Cakewalk
Solved. 01:04 (+)
拍脑袋贪心,每次找最近的星号。远近使用曼哈顿距离来定义,如果距离相同在上排的优先(自然的遍历顺序)
1 | n,m=map(int,input().split()) |
F. Math
Solved. 01:18 (+)
比较明显的盲文,不过找翻译花了一些时间。根据题面,不同的盲文规范还不大一样。
不过中间一模一样的两个图形(底下两个点,上下各两个点)代表的是-x
。前后估计是2,所以猜是2-x2
。x2
中间的符号不大一样,根据样例猜可能是上标。然后过了。
1 | n=int(input()) |
G. Encoded message
Solved. 01:56 (+)
又是盲文!这场应该改名叫 Blind People Contest
前期找了很多时间的规律,总感觉这个规律有点若即若离。实际上前面3个0-2和后面2个0-3,和还相等,其实就是对应 2×3 的盲文阵列。
于是对着前一题找的图手打了一个表。样例还很贴心地把所有编码可能重复的字母放在里面,以防混淆(codeforcez 也太刻意了吧)
1 | a=['10010','11020','20011','21012','11011','21021','22022','12021','00000','12012','10120','11130','20121','21122','11121','21131','22132','12131','11111','12122','10221','11231','12113','20222','21223','11222'] |
H. L BREAK into program
Unsolved.
没做。没工具,IDA* 还是什么十六进制阅读器,都没有,更不用说是题解提到的ZX Spectrum emulator了
据说通过阅读器可以看出端倪,有一个长得像注释的东西提出有个加号写成减号了,另外有两个数组,对应相加取 ascii 码应该就是答案了。
不过我用 vscode 试了下,没显示内容,就放弃了。
只需要输出答案,这题很 ctf。如果提早准备对应的工具,应该是能做出来的。
I. Mysterious language again, seriously?
Unsolved.
去年也有一个语言学习题,不过这种都挺花时间的。不过这次没有告诉是什么语言,而是让凭空猜。
结果 seriously 居然是一个语言!场上我还以为要用 custom test 来 hack 出到底是什么语言。。摔,而且 custom test 老是卡住