2025年2月26日大约 4 分钟
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1010
题目大意
小狗要逃离一个的长方形迷宫,迷宫出口的门仅在第 秒时开一瞬间(不到1秒)。因此,小狗必须恰好在第 秒到达门口才能逃离。 每一秒,它可以向上下左右任意移动一格,且所有格子至多走一次。
2023年11月13日大约 3 分钟
题目传送门:https://www.luogu.com.cn/problem/P1462
第一感觉跟leetcode做过的这道题很像,于是采用启发式搜索,取h(x) 恒等于0,很显然启发函数是可接受的、一致的,即Dijkstra。
2025年4月22日大约 3 分钟
2025年4月21日小于 1 分钟
2025年4月12日小于 1 分钟
typedef pair<int, int> pii;
struct cmp {
bool operator () (const pii& lhs, const pii& rhs) {
return lhs.second > rhs.second;
}
};
priority_queue<pii, vector<pii>, cmp> q;
2025年4月12日小于 1 分钟
排序算法总览
排序算法 | 平均时间复杂度 | 最好 | 最坏 | 空间复杂度 | 稳定性 |
---|---|---|---|---|---|
冒泡排序 | O(n^2) | O(n) | O(n^2) | O(1) | 稳定 |
选择排序 | O(n^2) | O(n^2) | O(n^2) | O(1) | 不稳定 |
插入排序 | O(n^2) | O(n) | O(n^2) | O(1) | 稳定 |
希尔排序 | O(nlog²n) | O(nlog²n) | O(nlog²n) | O(1) | 不稳定 |
归并排序 | O(nlogn) | O(nlogn) | O(nlogn) | O(n) | 稳定 |
快速排序 | O(nlogn) | O(nlogn) | O(n^2) | O(logn) | 不稳定 |
堆排序 | O(nlogn) | O(nlogn) | O(nlogn) | O(1) | 不稳定 |
计数排序 | O(n+m) | O(n+m) | O(n+m) | O(m) | 稳定 |
桶排序 | O(n) | O(n) | O(n^2) | O(n) | 稳定 |
基数排序 | O(n·k) | O(n·k) | O(n·k) | O(n+k) | 稳定 |
2025年2月24日大约 3 分钟
C++中具有强大的模板元编程,可以不依赖任何外部库,仅使用C++ std实现编译时的字符串混淆。
原始版本
在我的另一篇文章中提到过一个C++中字符串混淆的简易版本:
但其中0x55是硬编码的,我们需要引入编译时随机数来消除这一硬编码。
2024年12月17日大约 3 分钟
constexpr初探——阶乘
#include <iostream>
using namespace std;
constexpr int fac(int n)
{
return n <= 1 ? 1 : (n * fac(n-1));
}
int main() {
constexpr auto x = fac(5);
}
2024年12月17日大约 2 分钟