Effective C++ Note

《Effective C++》 一些记录(更新中)。

Some Modern C++ Techniques

Some code and techniques in modern C++(11, 14, 17, 20(just 2a)).

基础光线追踪(8) - 金属材质

实现简单的金属材质。

基础光线追踪(7) - 漫反射材质

实现简单的漫反射材质。

基础光线追踪(6) - 反走样

反走样,消除 $5$ 中较为明显的锯齿。

基础光线追踪(5) - 法向量及多个球

利用球的法向量来着色并简易封装代码实现多个球的渲染。

基础光线追踪(4) - 球

用光线追踪渲染一个球。

基础光线追踪(3) - 光线

编写光线并测试。

基础光线追踪(2) - 向量

完成 Vector.h 的编写。

基础光线追踪(1) - 环境搭建

学习最基础的光线追踪,主要参考 Ray Tracing in One Weekend,不同的是我将使用更现代的 C++ 实现,并用 png 格式显示结果。

「LOJ 138」类欧几里得算法

给出 $T$ 组询问,每组用 $n, a, b, c, k_1, k_2$ 来描述。对于每组询问,请你求出

$$
\sum_{x = 0} ^ {n} x ^ {k_1} {\left \lfloor \frac{ax + b}{c} \right \rfloor} ^ {k_2}
$$

对 $1000000007$ 取模。

「CC MANYLIST」-树状数组 + map

有 $n$ 个集合,初始都为空,要求支持:

  1. 向第 $[l, r]$ 个集合中加入 $x$。
  2. 求第 $i$ 个集合的元素个数。

「CC GEOCHEAT」-凸包

每次向平面中添加一个点 $P$,求当前点集的直径(任意两点最大距离)的平方。
数据随机

「CC PRIMEDST」Prime Distance On Tree-点分治 + FFT

给一棵树,随机选取两个点,求两点间路径距离为质数的概率。

「CC SUMDIS」Sum of distances-分治 + 树状数组

有一张 $n$ 个节点的有向无环图,节点编号为 $1 \sim n$。图的连边情况如下:

  • $\forall 1 \leq i \leq n - 1$,存在一条节点 $i$ 连向节点 $i + 1$ 的边,权值为 $a_i$。
  • $\forall 1 \leq i \leq n - 2$,存在一条节点 $i$ 连向节点 $i + 2$ 的边,权值为 $b_i$。
  • $\forall 1 \leq i \leq n - 3$,存在一条节点 $i$ 连向节点 $i + 3$ 的边,权值为 $c_i$。

除此之外,图中不存在其它的边。
对于一对节点 $s$ 和 $t$ $(s \lt t)$,记 $d(s, t)$ 为从 $s$ 到 $t$ 的最短路径长度。请你求出所有的 $d(s, t)$ 之和,其中 $1 \leq s \lt t \leq n$。

优化 NTT 的性能

优化 NTT 的速度。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×