XCPC 2021 补题 memo
闲着无聊做做,看看退役选手还能写出来些啥。
题解 memo,保持更新。(反正应该没几天就腻了)
闲着无聊做做,看看退役选手还能写出来些啥。
题解 memo,保持更新。(反正应该没几天就腻了)
久仰 Hackergame 大名,虽然今年是预定摸了的,但是有个朋友拉我来打,打着打着我自己上头了,也就认真搞了。
CTF noob 第一次打相关类型的比赛,幸好运气好拿到了 67 名的好成绩(至少对我这个水平来说)。学到很多东西,跟算法竞赛的体验还是不一样的,以后有时间可以多打。
对于一门对内存控制足够精细的语言来说,值类型与引用类型的区别是十分重要的:值类型通常意味着较低的拷贝成本,通常来说,这样的类型被分配在栈上(当然,对于 C/C++ 来说,我们可以在堆上直接分配一个值类型对象,如 int
),而引用类型则通常分配在堆上,我们需要用一个包装过的对象去维护。
在 Rust 中,值类型和引用类型的界限在语言上提供了很明确的区分,而为了避免 C/C++ 中用户可以不受限制使用裸指针的情况,Rust 将很多裸指针操作都包在了 unsafe
块内,用户使用时必须对这种行为有足够的认知。当然,当用户需要使用指针,或者说引用类型的时候,Rust 也提供了 7 种包装类型来帮助用户更好的管理堆上的内存。
然而,Rust 官方教程和文档对这 7 种包装类型的介绍有很多容易混淆之处,同时网上的很多文章也已经完全脱离了最新版 Rust 的功能描述(如很多文章仍然描述 Cell
只接受实现了 Copy
的类型),导致很多初学者学习时容易产生迷惑和误用。这篇文章是我在复习 Rust 时重新学习包装类型相关时做出的笔记,希望能更好的帮助大家理解 Rust 的包装类型。
本文写作时的 Rust 版本为 Stable Channel 1.48.0。
这篇文章已经咕了一年了,原先的前言已经完全脱离时代了,在第一版到最终成文的期间过去了很多事情,趁现在毕业前夕有点时间迅速把坑给填了,也算是给大学和竞赛生涯画个句号吧。
这次的刷题对象是 AtCoder 的 Educational DP Round。从简单到困难的问题都有,倒挺适合我这种不会 DP 的人的。
在最近博客的例行维护(更换主题修复 post)过程中,我偶然读了这篇文章。之前就对 IPFS 有点兴趣,这次花了点时间去看了一下相关知识,发现最近的 IPFS 生态完善了许多,我就花了点时间迁移了整个工作流。这篇文章就是过程中的一些记录。
这篇文章是有个朋友要选一门数学素养课,涉及到的内容其实并不复杂,就心血来潮的写了这篇文章梳理一下从小学数学到理解 RSA 需要的基础知识。阅读这篇你只需要有基础的阅读能力即可。
这篇文章只是一篇简单的 Walkthrough,如果对其中的某个定理想有更深入的研究,请复制到搜索引擎,网上会有更详细和严谨的资料。同时感谢龙二的审稿。