摘要: 数据结构 并查集 查询两点是否在同一集合内 struct DSU { std::vector<int> f, siz; DSU(){} DSU(int n) { init(n); } void init(int n) { f.resize(n); iota(f.begin(), f.end(), 0 阅读全文
posted @ 2025-02-27 14:37 自动机 阅读(9) 评论(0) 推荐(0)
摘要: 北境互娱 简述重载与重写 重载是指同一可访问区内被声明的几个具有不同参数列(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型。 重写是指派生类中存在重新定义的函数。其函数名,参数列表,返回值类型,所有都必须同基类中被重写的函数一致。只有函数体不同(花括号内 阅读全文
posted @ 2024-09-13 22:08 自动机 阅读(24) 评论(0) 推荐(0)
摘要: 半透明边缘光效果 原理 整个效果分为两部分,一个是半透明效果另一个是边缘发光,对于第一个效果来说我们只需要使用透明度混合的方法就可以办到,第二个效果的关键在于怎么辨别边缘? 我们可以用法线向量点乘视线向量来辨别. \[ \vec{a} * \vec{b} = |a| * |b| * cos\thet 阅读全文
posted @ 2024-09-06 21:17 自动机 阅读(282) 评论(0) 推荐(0)
摘要: 数论,dp 思路: 令A为一个正整数序列,\(a_{i}\)为序列中的数 将\(a_{i}\)分解质因数,\(a_{i}\) = \(p_{1}^{x1}\) * \(p_{2}^{x2}\)... 则LCM(A)就是由每一个p的指数取max组成的 如果子序列合法,那么子序列中每个数分解质因数之后, 阅读全文
posted @ 2024-04-19 23:56 自动机 阅读(12) 评论(0) 推荐(1)
摘要: 思路 《Shader入门精要》看到第九章,试着结合前面的知识实现一个标准光照模型,采用Blin-Phong模型,分为三大部分环境光,漫反射,高光反射。实现过程中加入凹凸效果,阴影效果。注释部分是透明效果,采用透明度测试的方法实现。具体细节见代码 代码 // Upgrade NOTE: replace 阅读全文
posted @ 2024-01-26 19:02 自动机 阅读(29) 评论(0) 推荐(0)
摘要: 原理 翻书这个过程可以看成是平面上的点都绕z轴旋转,但是直接这样写的话会出现问题。因为旋转轴是在中间的,所以我们在旋转之前要把点向左偏移5个单位这样旋转轴就到了最左边,然后再乘上旋转矩阵得到旋转之后的位置,再向右边偏移5个单位还原一下。这样实现的太生硬了,所以带入正弦函数改变一下顶点的高度,让书页有 阅读全文
posted @ 2024-01-25 13:18 自动机 阅读(118) 评论(0) 推荐(0)
摘要: 图找环 如标题所示,本文主要探讨无向图/有向图中环的做法 1. 拓扑排序判断环是否存在 在一个途中,如果点i和点j之间存在一条路径,则认为这两个点相互依赖, 而在拓扑序中每个点只会和后面的点产生依赖关系,由此可知如果图中存在环那么一定不存在拓扑序 那么应该如何求拓扑序呢? bool toposort() { 阅读全文
posted @ 2023-08-14 15:29 自动机 阅读(72) 评论(0) 推荐(0)