Mslxl's Blog

Integrate Life

The 2020 ICPC Asia Shenyang Regional Programming Contest

The 2020 ICPC Asia Shenyang Regional Programming Contest - Codeforces Gym B - Whispers of the Old Gods 给出一个正则表达式 pattern 和字符串 str,要求对字符串中的数字进行尽可能少的插入,删除,替换操作。输出最小的操作次数。 做老题结果发现专业对口这件事 首先根据题目给出的 BNF 写出正则的解析器,然后用 Thompson's Construction 构造和 pattern 对应的 NFA, 重合 NFA 的起点和 str 的开始符,向后匹配到 NFA 的结束状态即可。当 str 的下一个字符使得 NFA 没有对应转移时, 修改 str 的下一个字符,其实也就相当于一个 01-最短路。 有关 Thompson's Construction 构造可以参考 Comp412 课

Codeforces Round 841 (Div. 2) and Divide by Zero 2022 - ABCD

Codeforces Round #841 (Div. 2) and Divide by Zero 2022 A - Joey Takes Money 给一个长度为 n 的整数序列 $a_i \ge 1$ 选择两个数 $a_i$ 和 $b_i$,将其替换为 $x$, $y$,其中 $x _ y = a_i _ a_j $,这个操作可以进行无数次 输出这个序列的和乘以$2022$ 直接暴力就行: // clang-format off #include <bits/stdc++.h> #include <functional> using ll = long long; using ul = unsigned long long; using ld = long double; template <typename T> inline typename

2022 第五届传智杯初赛

A-莲子的软件工程学 记得开 long long 就好,防止取绝对值时爆炸 #include<bits/stdc++.h> using ll = long long; using ul = unsigned long long; using ld = long double; template <typename T> inline typename std::enable_if<std::is_integral<T>::value>::type read(T &x){ char c;T f=1; while(!isdigit(c=getchar())) if(c=='-')f=-1; x=(c&15); while(isdigit(c=getchar())) x= (x<<1) + (x<&

The 2022 ICPC Asia Xian Regional Contest (CHGJ)

只把签到题做了做。 回头把剩下的题补一下 听说今年要七道题才能铜 😂 C - Clone Ranran 题目大意 然然要准备 $c$ 道题,它可以进行两种操作: 克隆一个自己,使自己的数量变为原来的二倍,这需要消耗 $a$ 分钟时间 每个自己准备一道题,这需要消耗 $b$ 分钟的时间 然然不可能同时做两件事,问准备 $c$ 道题目最少用时。 思路 经过分析我们可以得知,先进行克隆操作总是不亏的,因为每次克隆操作都能使接下来用相同的时间 准备的题目数量增加2倍。而且我们一定是先进行完所有的克隆操作,最后再准备题目。 那么什么时候停止克隆呢。我们可以计算每次克隆+准备所有题目的用时和不克隆准备所有题目的用时, 如果大于就不再克隆了。 确定了这两点,代码就不难写了 代码 #include <bits/stdc++.h> #define rep(NAME, MAX) for (i

Dev-C++ OpenCV 环境搭建

发布于 # C++ # OpenCV

该文章写于 2022 年十月,部分内容可能已经过时 此文目的为实验室同学参考,个人还是推荐尽早换下 Dev 用 CodeBlock(MinGW-make) 理论上配置差别不大,可以参考下。 用 Visual Studio 的话网上全是教程,直接百度就行。 需要准备的软件 Dev-C++ 或 RedPanda C++ MinGW 或 msys2-mingw32 (一般安装 Dev-C++ 时会同时安装) OpenCV Source CMake 步骤 下载 OpenCV 源代码 由于新版的 OpenCV 不提供 gcc 的编译,而 Dev-C++ 只能使用 gcc 编译器,所以我们需要自行使用 gcc 编译 OpenCV 从 OpenCV Releases Page 下载源代码,注意选择 Source 下载完成后进行解压(这里解压到 D:\Code\opencv\opencv-4

使用 ts 实现 Parser 组合子

发布于 # TypeScript

Parser 组合子(Parser Combinator) 可用于实现词法分析器或者 LL 语法分析器,它的实现较为简单,但缺点是运行效率较低(尤其是在组合层数较多时),在对性能要求不高时可采用 Parser 组合子来进行解析任务。 本文最终会实现这样的 Parser Combinator: const input = '114514aabbcc' const result = parser.digit1()(input) console.log(result) // { kind: 'Right', right: { first: 'aabbcc', second: '114514' } } 准备: Either 要表示 Parser Combinator,首先要先分别表示出 parse 成功和失败的两种状态。 本文采用了类似 Either 的概念,其 Left 储存错误信息,而

关于消失的页面

发布于

突然发现之前有些文章全是黑历史,全删了*(:3」∠)*。 再换一个简单的主题,原先的主题感觉有点喧宾夺主。 内容的话有时间再整理一下。

使用 Doom Emacs 工作

发布于 # 译 # Emacs

Table of Contents Table of Contents 安装 项目与工作空间 (Projects and Workspaces) 常见任务 (Common Tasks) 寻找文本 (Finding Text) 在文本间移动 (Moving To Text) 扩大和缩小范围 (Narrowing and Widening Regions) 多光标 (Multiple Cursors) 撤销与重做 (Undoing and Redoing) 在编译输出间导航 (Navigating Compliation Output) 杂项 了解更多 Doom 原文: Doom Emacs Workflows 发布于 2019 年 2 月 15日,部分功能可能已发生变化。 我最近放弃了 Spacemacs, 开始使用 Doom Emacs. 目前为止,Doom Emacs 的文档仍十分简

V2Ray Setup

发布于 # V2Ray

404 Not Found (Even though your browser tell you that status code is 200)

Epub 文件结构

发布于 # Epub

epub 文件的实质其实是一个固定格式的 zip 压缩包,文件名以 UTF-8 编码,但是不同的软件对于同一个 epub 标准有不同的实现。 为了兼容所有软件,同时提升加载速度,最好是 Compression level = Store,因为个别软件严格遵守epub标准(比如 Okular)。 OCF 规定: ZIP 文件的压缩等级必须为 stored 、方式为 deflate <details> <summary>原文</summary> <blockquote><p>OCF ZIP Containers MUST include only stored (uncompressed) and Deflate-compressed ZIP entries within the ZIP archive. OCF Processors

moe-counter

统计自 2024 年 9 月