摘要: Learning C++ (Day 2) 1. 智能指针 unique_ptr std::unique_ptr<Shape> p = std::make_unique<Circle>(); 与Shape* p = new Circle(); 在底层调用多态函数时的行为完全一致,但在生命周期管理、异常安全、所有权表达及工程防错上有着本质区别。 阅读全文
posted @ 2026-10-09 17:48 カガリ 阅读(4) 评论(0) 推荐(0)
摘要: 多态 | C++ 在 C++ 面向对象编程与架构设计中,多态(Polymorphism) 是实现解耦与模块化扩展的关键基石。它的本质在于将“接口的定义”与“具体实现”分离,使调用方能够通过统一的抽象契约操作不同类型的实体。 本文将从设计初衷出发,对比编译期与运行期多态的权衡,深入剖析虚函数表(vtable)与虚表指针 阅读全文
posted @ 2026-10-09 10:59 カガリ 阅读(2) 评论(0) 推荐(0)
摘要: Learning C++ (Day 1) 1. 指针与引用 对比项 指针 T* 引用 T& 可否为空 可以,nullptr 合法 必须绑定对象,无空引用 能否重新绑定 可以指向别的对象 绑定后终身不变 是否占内存 占 8 字节(64 位系统) 语义上是别名,通常不占;作类成员或数组元素时占位 算术运算 支持 p+1、p[i] 不支持 多级 阅读全文
posted @ 2026-10-08 18:06 カガリ 阅读(8) 评论(0) 推荐(0)
摘要: 对每次加入工人进行分段处理,同时维护工厂的前 k 大和。 每次处理当前工人,记当前工人和下一工人之间的工厂为新段,计算新段中每个工厂的贡献,然后将其降序排序,最后枚举分配去新工厂的人数和去旧工厂的人数,统计共同的贡献,取最大值就做完了。 这里维护前 k 大值的和用到了对顶堆,详细见代码。 #incl 阅读全文
posted @ 2026-04-13 11:09 カガリ 阅读(37) 评论(0) 推荐(0)
摘要: 先用单调栈预处理出 i 位置左右第一个小于 a[i] 的位置,然后计算出 tot 数组 (tot[i]: 所有以 a[i] 为最小值的子数组总数) 和 pos 数组去记录每个数的位置所在 (每个数互不相同)。构造离线查询,对于固定的 i,枚举所有正整数 t 使得 t * a[i] <= maxA,把 阅读全文
posted @ 2025-09-22 23:55 カガリ 阅读(32) 评论(0) 推荐(0)
摘要: 由读题和打表发现,最后一定会形成一个循环,那么可以用字符串哈希来记录每次队列状态,遇到重复状态就代表找到循环节,记录下循环开始的地方和循环节长度。然后处理一下循环节开始之前和结束之后的地方就完成了。 #include <bits/stdc++.h> // from: cpp.json #define 阅读全文
posted @ 2025-08-12 21:04 カガリ 阅读(67) 评论(0) 推荐(0)
摘要: 算叉积时注意溢出问题。 #include <bits/stdc++.h> // from: cpp.json #define INF 8e18 #define int long long using namespace std; // 几何模板 template<class T> struct Po 阅读全文
posted @ 2025-07-28 16:44 カガリ 阅读(12) 评论(0) 推荐(0)
摘要: 在跑半平面交的时候,要塞一条直线-y进去,避免出现非法情况。 #include <bits/stdc++.h> // from: cpp.json #define INF 8e18 #define int long long using namespace std; // 几何模板 template 阅读全文
posted @ 2025-07-27 20:19 カガリ 阅读(29) 评论(0) 推荐(0)
摘要: 来源:https://codeforces.com/gym/102460 的L题 这道题和 https://www.luogu.com.cn/problem/P4166 是一样的思路,不过要注意凸包中只有三个点的情况,如果有点和三角形重合,三角形和这个重合的点连起来就是四边形了,此时的最大面积就是三 阅读全文
posted @ 2025-07-26 19:04 カガリ 阅读(22) 评论(0) 推荐(0)
摘要: 注意生成凸包时要把点去重,然后用旋转卡壳解决即可。 #include <bits/stdc++.h> // from: cpp.json #define INF 8e18 #define int long long using namespace std; // 几何模板 template<clas 阅读全文
posted @ 2025-07-26 16:25 カガリ 阅读(14) 评论(0) 推荐(0)