WriteUp

Hackergame 2021 部分题解

0 条评论 WriteUp CTF Hackergame B1ue1nWh1te

前言

去年第一次了解到并参加了Hackergame这个比赛,感觉这里的题目都特别的有意思(也很离谱),所以今年满怀期待地参加了比赛。比赛成绩并不令自己满意,经过了一年的时间,自己的技术似乎没有太大的长进,而且这次花了特别长的时间做题,作业没写课也没上几节,时间全砸这上面了也只做了一些简单的题目,有些题目有能力做但是总在关键的一步卡住,比较可惜。不过既然比赛已经结束了,就应该好好总结经验教训,弥补不足。

这是我在本次比赛中的成绩排名及答题情况。

0-1

0-2


[2021夏季学期编程训练题四]解题思路及参考代码

0 条评论 WriteUp C++ 练习 B1ue1nWh1te

更新日志

[2021年9月5日] 更新了难度1和2的题解。

[2021年9月14日] 更新了难度3和4的题解,动态规划的题目借用CSDN上的一个优秀博主(Karltan)的代码,学习了。

前言

文章内容为作者个人学习心得,解题思路及参考代码不一定是最优的,如发现有不正确的地方或更优的解法,欢迎批评指正或讨论交流,联系方式可以在页面下方找到。

1.在霍格沃茨找零钱

1

temp = input().split()
v1, v2 = temp[0].split("."), temp[1].split(".")
for i in range(3):
    v1[i] = int(v1[i])
    v2[i] = int(v2[i])
s1 = (v1[0] * 17 + v1[1]) * 29 + v1[2]
s2 = (v2[0] * 17 + v2[1]) * 29 + v2[2]
c = s2 - s1
ac = abs(c)
g = ac // (17 * 29)
s = (ac - g * 17 * 29) // 29
k = ac - g * 17 * 29 - s * 29
if c < 0:
    print("-{}.{}.{}".format(g, s, k))
else:
    print("{}.{}.{}".format(g, s, k))


[2021夏季学期编程训练题三]解题思路及参考代码

3 条评论 WriteUp C++ 练习 B1ue1nWh1te

更新日志

[2021年7月26日] 更新了难度1和2的题解。

[2021年9月5日] 更新了难度3和4的题解(部分题目是从CSDN搬运的,因为这些题目表面复杂实际简单,写出来很费时间却无助于提升)。

[2021年9月5日] 训练四题解已更新,点此<传送门>进入。

前言

文章内容为作者个人学习心得,解题思路及参考代码不一定是最优的,如发现有不正确的地方或更优的解法,欢迎批评指正或讨论交流,联系方式可以在页面下方找到。

1.部分A+B

1

A, DA, B, DB = input().split()  #读入数据(字符串型)
PA = DA*A.count(DA)     #统计A中出现DA的次数,并将DA重复这么多次,得到PA
PB = DB*B.count(DB)     #统计B中出现DB的次数,并将DB重复这么多次,得到PB
PA = 0 if PA == '' else int(PA)     #若DA在A中一次都没有出现,则PA为0,否则转为整型
PB = 0 if PB == '' else int(PB)     #若DB在B中一次都没有出现,则PB为0,否则转为整型
print(PA + PB)      #输出PA与PB的和


[2021夏季学期编程训练题二]解题思路及参考代码

4 条评论 WriteUp C++ 练习 B1ue1nWh1te

更新日志

[2021年7月9日] 开始更新训练二题解,今天先上难度1的题,正好题目简单,可以让大家领会一下Python的优雅。之后的题目也都会有Python版本(因为太好用了,毕竟是小训练问题不大),同时考虑到兼顾的问题,也会向朋友们征集C++版本的代码进行发布。如果想要某题的C++代码也可以在下方评论区留言,我有时间就手敲。

[2021年7月11日] 更新了难度2的题目,之后参考代码都是Python的,无论有无基础,认真看都是能看懂的。

[2021年7月14日] 已更新所有题目的题解。

[2021年9月5日] 训练三题解已更新,点此<传送门>进入。

本文只有第7、12、21题使用了C++编写,若需其他题目的C++思路,点击这里查看森大的文章。

前言

文章内容为作者个人学习心得,解题思路及参考代码不一定是最优的,如发现有不正确的地方或更优的解法,欢迎批评指正或讨论交流,联系方式可以在页面下方找到。

1.字符串反转2

1

思路: 由于数据的条数不明,故使用while循环。处理方式就是将字符串以空格符进行分割得到由每个单词组成的列表,之后对列表进行逆序操作,最后用空格符将单词连成句子并输出。

try:
    while True:  # 持续循环
        sentence = input()
        temp = sentence.split(" ")  # 以空格符分割字符串得到单词列表
        temp.reverse()  # 将单词列表逆序
        sentence = " ".join(temp)  # 拼接成句子
        print(sentence)  # 输出逆序后的句子
except EOFError:  # 若已经到输入的结尾EOF则退出
    pass




[2021夏季学期编程训练题一]解题思路及参考代码

2 条评论 WriteUp C++ 练习 B1ue1nWh1te

更新日志

[2021年7月5日] 做了难度为1和2的所有题目,额外加一道难度为3的第2题(今天均为C++解法 明天难度3和4尝试用Python来写)

[2021年7月6日] 目前做了第6和21题(C++写法),第3、5、7题(Python写法),题目是做一部分更新一部分的。评论区已经打开,如果你有好的建议和想法欢迎留言。

[2021年7月7日] 今天更新了第4、9、10题,还剩第8题明天用Python解。

[2021年7月8日] 第8题详解已更新,C++写法。(Python写法读bin文件有点复杂,就改用C++了)至此,训练一所有题目已经AC。

[2021年7月9日] 训练二题解已更新,点此<传送门>进入。

前言

文章内容为作者个人学习心得,解题思路及参考代码不一定是最优的,如发现有不正确的地方或更优的解法,欢迎批评指正或讨论交流。

1.众数

1

思路:由于输入的数据是比较规范的,所以可以通过判断新输入的数和上一个输入的数是否相同来入手,如果相同则计数器加1,如果不同则代表上一个数已经统计完毕,将数和计数值存入两个数组中,它们的下标相互对应,清空计数器并对下一个数进行同样的操作。计数完成后遍历计数数组寻找最先出现的最大众数的下标,输出数字数组中这一下标位置存储的数即可。


知 乎 推 特 QQ Mail Github Xayah 贰猹的小窝 St.Lee