RISC-V 平台上编程(一)

引言

RISC-V的作者们旨在提供数种可以在 BSD 许可证之下自由使用的 CPU 设计;该许可证允许像是 RISC-V 芯片设计等派生作品可以像 RISC-V 本身一样是公开且自由发行,也可以是闭源或者是专有财产。

RISC-V – Wikipedia

在过去几十年的开源软件运动中,以 GNU/Linux 等为代表的一系列开源软件成为了科技行业内不可或缺的基础设施,平等的让每一个使用开源软件的个人与团体受益。除了开源操作系统,开源运动在其他方面也并未停下过。各种软件开发框架和系统软件都在拥抱开源(比如,曾将 Linux 称为「癌症」的微软现在也积极的在开源社区中贡献)。

Continue reading →

算法竞赛回忆录

现在是 2022 年 7 月 28 日的凌晨,我刚刚结束 CCPC Final 2021。打铁是毫无疑问的,Final 本来也就是去图一乐,但是这一场比赛对我的算法竞赛历程极为重要吧。

它标志了我四年算法竞赛生涯的结束。回忆着几个小时前的比赛,我记得我还在和队友讨论 SG 函数、meet-in-middle、线性基和高斯消元。「到底是怎么实现的呢?这个思路又是怎么形成的呢?」即使我几周前就决定了我在这个赛季结束之后就退役,但是在退役的最后一场比赛,明知道自己以后可能再也不会想这些东西,却还是一直在思考着。现在我一个人坐在床上打字,仔细想想才明白,原来我已经在算法竞赛中太久了,这样的思考已经成为了我每一天的习惯了。

Continue reading →

「2021 CCPC 桂林」J – Suffix Automaton

简要题意

给定一个字符串 \(S\)。对该字符串本质不同的子串定义一种排序方式:

  • 长度不同时,长度短的排在低次位。
  • 长度相同时,按字典序排序。

简单而言,长度是第一关键字,字典序是第二关键字。现在给定 \(Q\) 个询问,每个询问要求找到在该排序下排名为 \(k\) 的子串的第一次出现位置。

数据范围

\(1 \leq |S|, Q \leq 10^6, 1 \leq k \leq 10^{12}\)

Continue reading →

VSCode 中 C/C++ 插件的配置(macOS)

简述

高考结束之后,我身边有一些计算机系的同学准备开始卷 C/C++,在使用 macOS VSCode 的过程中碰到了配置上的问题。在这里写一篇小的文章来记录一下这个过程。

本文的目标是配置好 Cpptool 使得 VSCode 可以自动进行单文件的编译和调试。

Continue reading →