摘要: 报喜,分数类研制成功! 正式完结散花!简单测试了下,基本没有 bug。 本代码遵循 CC-BY-NC-ND (署名-非商业使用-禁止演绎)协议。 代码:frac.h #pragma once #include <iostream> #include <utility> #include <cmath 阅读全文
posted @ 2023-10-15 17:18 haokee 阅读(28) 评论(0) 推荐(0)
摘要: 双人五子棋 C++ 官方解析版。只支持最新的 VC++ 的 C++23 (部分)版本。如果你需要使用 GNU 进行运行,请自行解析至 C++14。 本代码遵循 CC-BY-NC (署名-非商业使用)协议。 #include <iostream> #include <cstring> #include 阅读全文
posted @ 2023-10-15 17:12 haokee 阅读(31) 评论(0) 推荐(0)
摘要: 双人接龙小游戏 C++ 重置版 只能使用 VC++23,GNU 用户请自行解析! Update: 增加了脏话字库,请大家在接龙时文明用语! 本代码遵循 CC-BY-NC-ND (署名-非商业使用-禁止演绎)协议 #include <iostream> #include <cstdlib> #incl 阅读全文
posted @ 2023-10-15 17:11 haokee 阅读(28) 评论(0) 推荐(0)
摘要: 好渴鹅命令行 本代码仅能在 VC++ 23 的情况下通过编译并运行,可能会有小 bug。所有的文件必须放在同一个文件夹下。 Update 添加了清屏命令; 添加了查看版本命令; 添加了 cd 命令。 本代码遵循 CC-BY-NC-ND (署名-非商业使用-禁止演绎)协议。(本协议最为严格,因为无法继 阅读全文
posted @ 2023-10-15 17:09 haokee 阅读(37) 评论(0) 推荐(0)
摘要: \documentclass[UTF-8]{ctexart} \usepackage{fancyhdr} \usepackage{enumerate} \usepackage{amsmath} \usepackage{indentfirst} \setlength{\parindent}{2em} 阅读全文
posted @ 2023-10-15 16:45 haokee 阅读(175) 评论(2) 推荐(0)
摘要: 前言 广度优先搜索(Breadth First Search, BFS),即在搜索树内搜索,一起处理相同层级的状态,再去处理下一级的状态。由于不是一个劲地往前搜,因此处理可行性问题是搜到结果就可以直接退出,但是深度优先搜索最坏得遍历完整个搜索树才能退出。广度优先搜索也不是没有坏处,它会破坏先驱状态, 阅读全文
posted @ 2023-10-15 16:29 haokee 阅读(23) 评论(0) 推荐(0)
摘要: 前言 深度优先搜索(Depth Fir Search, DFS)是用来在搜索图内搜索的一种算法。在算法中,如果遇到新状态,那么立刻处理新状态,并处理新状态转移出来的状态。若没有新状态了,那么才回去处理旧状态。DFS 一般使用递归实现。 搜索的题目灵活多变,需要有一定的经验。 例题 记录路径 按照字典 阅读全文
posted @ 2023-10-15 16:22 haokee 阅读(24) 评论(0) 推荐(0)
摘要: 我们知道 \(x\) 个 \(a\) 相乘乘上 \(y\) 个 \(a\) 相乘,等于 \(x+y\) 个 \(a\) 相乘,因此我们可以得出公式 \(a^x\times a^y=a^{x+y}\)。因此,设 \(f(a,b)\) 表示 \(a\) 的 \(b\) 次方,我们可以这样算: \[f(a 阅读全文
posted @ 2023-10-15 16:06 haokee 阅读(9) 评论(0) 推荐(0)
摘要: 某大学有 \(n\) 个职员,编号为 \(1\dots n\)。他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。 现在有个周年庆宴会,宴会每邀请来一个职员都会增加一定的快乐指数 \(r_i\),但是呢,如果某个职员的直接上司来参加舞会了,那么这个职员就无论如 阅读全文
posted @ 2023-10-15 16:01 haokee 阅读(19) 评论(0) 推荐(0)
摘要: 递推型动态规划一般不能处理图的问题,因为图是没有拓扑序的。一个定点可能有多个入度或者多个出度,而缺少了动态规划必须的拓扑序。但是其实我们可以对图进行拓扑排序,找到这个图的拓扑序,然后再进行动态规划。 拓扑序仅在有向无环图里面出现,一个同样的图可能会有多个拓扑序。 基本思想 首先我们选取所有入度为 \ 阅读全文
posted @ 2023-10-15 15:57 haokee 阅读(23) 评论(0) 推荐(0)
摘要: Floyed-Warshall 采用 dp 的思想。设 \(dp_{(i,j)}\) 表示 \(i\) 到 \(j\) 的最短路径,那么对于任意的 \(k\),\(dp_{(i,j)}=\min(dp_{(i,j)}, dp_{(i,k)} + dp_{(k,j)})\)。 void floyed( 阅读全文
posted @ 2023-10-15 15:28 haokee 阅读(23) 评论(0) 推荐(0)
摘要: 线段树是一种经常用来维护区间信息的数据结构,可以在 \(O(\log_2 n)\) 的时间复杂度之内完成单点修改、区间修改、区间查询等操作,底层是一个二叉树。 结构与建树 我们可以画出一颗树的形态,每往下一层就会将上一层管辖的范围分成两半,然后递归进行操作。我们可以递归建树,当前建树的区域为 \([ 阅读全文
posted @ 2023-10-15 15:22 haokee 阅读(55) 评论(0) 推荐(0)
摘要: 有的时候,我们需要使用数组记录下标,但是下标可能会非常大,但是存储的数据却不多,这时我们就需要一个名叫“哈希表”的东西进行使用了。 哈希表的创建 哈希表的原理就是用一个哈希函数,使得一些数的的哈希值都在哈希表的可承受范围之内。哈希表本质上就是一个数组,但是大小并没有这么大,而是通过哈希函数映射成一个 阅读全文
posted @ 2023-10-15 15:16 haokee 阅读(24) 评论(0) 推荐(0)
摘要: 并查集是一种树形的结构,重点不在于遍历所有的点而是记录父亲。并查集使用起来就是集合,拥有查找、合并等操作。现在,跟随好渴鹅的脚步,走入并查只因的大门。 并查集初始化 最开始,有 \(n\) 棵树,第 \(i\) 棵树只有自己一个结点。当想要合并时,就把一棵树的根的父亲改为另一棵树,这样子它们就合并成 阅读全文
posted @ 2023-10-15 15:12 haokee 阅读(14) 评论(0) 推荐(0)
摘要: 思路 既然每次都是坐在最值上面,那么我们就可以定义两个优先队列,分别存上内向者和外向者的座位信息,需要的时候就可以 top 出来最大或最小的座位。 由于堆顶的值 top 出来实际上是座位的宽度,因此通过所有的 \(w_i\) 都不相同的特性,我们可以使用 map 或者 unordered_map 来 阅读全文
posted @ 2023-10-15 14:35 haokee 阅读(26) 评论(0) 推荐(0)
摘要: 题目传送门 题意分析 我们可以先画图,就可以知道在 \(n\) 为偶数的情况下,他们永远不会重叠,直接计算 \((k-1)\bmod n+1\)。(当 \(k=n\) 的情况下,直接计算 \(k\bmod n\) 会导致等于 0,因此需要先 \(-1\) 再 \(+1\)) 对于 \(n\) 为奇数 阅读全文
posted @ 2023-10-15 14:33 haokee 阅读(13) 评论(0) 推荐(0)
摘要: 传送门 题意简介 在一个 \(n\times n\) 的矩阵里面,有一个人要一行一行蛇形爬过去。求一条路径 \(l\),使得 \(\sum\limits_{i=1}^{n^2-1}l_i>l_{i+1}\) 严格小于 \(\sum\limits_{i=1}^{n^2-1}l_{i}\le l_{i- 阅读全文
posted @ 2023-10-15 14:30 haokee 阅读(18) 评论(0) 推荐(0)
摘要: 传送门 补充题目 对于 \(1\times 2\) 的瓷砖,你不可以竖着放(即 \(2\times 1\) 的形式); 有可能全部铺 \(1\times 1\) 的瓷砖会更优。 思路 看到不可以竖着放,我们会很自然地使用贪心。 对于每一行,我们都单独处理。每两个相邻的字符 .,我们都可以使用 \(1 阅读全文
posted @ 2023-10-15 14:27 haokee 阅读(12) 评论(0) 推荐(0)
摘要: 传送门 思路 大家在刷题时,每一看到高精度就会对这道题视而不见,仿佛很难似的(我也是)。但其实高精度就是我们小学二年级学的竖式,只是代码看起来比较长而已。 高精度加法 我们就按照竖式来,各位相加。例如: 2 0 2 3 + 1 9 8 0 ————————————— 3 9 10 3 但这时我们会发 阅读全文
posted @ 2023-10-15 14:26 haokee 阅读(66) 评论(0) 推荐(0)
摘要: 传送门 题目大意 \(n\) 个人要坐在 \(m\) 个椅子组成的环上面; 第 \(i\) 个人左右要空 \(a_i\) 的位置; 判断能否坐下 \(n\) 个人。 思路 既然是两个人互相空位置,那么两个人隔得位置越相近肯定就越好。我们直接排序一遍,这样子相邻的两个人必然空的位置大小最靠近。由于这些 阅读全文
posted @ 2023-10-15 14:24 haokee 阅读(23) 评论(0) 推荐(0)