败犬日报 2025-12-04
败犬日报 2025-12-04
1. 面试题:n 只乌龟有重量和承载能力,问最多叠多少只乌龟
假设重量 wi,承载能力 vi,
首先是
我们从上到下叠乌龟,按照 wi + vi 排序,必定是从小到大放。这是因为,如果一种可行的堆叠方式,上下相邻两个乌龟不满足 w1 + v1 ≤ w2 + v2,把它们交换也是一种可行的堆叠方式(要列一些公式证明,略)。
于是可以用动态规划,排序后 dp[i,j] 表示前 i 个乌龟选 j 个重量最小是多少。
当然这个做法不够完美,因为
2. Claude Opus 4.5 的灵魂文档被人逆向提取!Anthropic 负责人承认属实(文章)
https://mp.weixin.qq.com/s/9KTOyWEt-I0G8y-ojrrDfQ
3. c++ 数组初始化可以用 [0] = 0(指派初始化)吗
不支持,因为等号初始化、大括号初始化是两种不同语义,大括号无法支持(理由是下面的代码)。而只支持等号初始化的话,估计是认为不够全面,干脆不支持了。
cpp
struct S1 { int x; };
struct S2 {
S2() {}
S2(auto&&) {}
};
int main() {
S1 s1 = {
.x{} // 注意里面可以没有 =
};
constexpr int x = 0;
S2 s2[1] = {
[x] {} // 这是?lambda 大人!
};
}4. 反射为什么拖到 C++26
C++20 委员会肉眼可见的忙,C++23 因为疫情摸个鱼。
但是想 C++23 进也不太可能,推反射那群人是 23 年下半年开始全力推,今年上半年加班才赶上 ddl。
5. 如何评价:“要是委员会足够聪明,在 98 年就能把后来的特性都加入,就没那么多问题了”
世界上不存在你所谓的“聪明”。计算机体系结构、软件架构、软件工程理论都是持续进化的,语言的迭代也是在不断实践过程中发生的。
—— bincat