<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0"><channel><title>fogflea</title><link>https://www.fogflea.com</link><atom:link href="https://www.fogflea.com/rss.xml" rel="self" type="application/rss+xml"/><description>想要抓住梦想，却总是醒悟太晚。</description><generator>Halo v2.22.3</generator><language>zh-cn</language><image><url>https://www.fogflea.com/upload/fn_cir.png</url><title>fogflea</title><link>https://www.fogflea.com</link></image><lastBuildDate>Mon, 11 May 2026 11:40:30 GMT</lastBuildDate><item><title><![CDATA[一些短小有趣的题 2]]></title><link>https://www.fogflea.com/archives/yi-xie-duan-xiao-you-qu-de-ti-2</link><description><![CDATA[<img src="https://www.fogflea.com/plugins/feed/assets/telemetry.gif?title=%E4%B8%80%E4%BA%9B%E7%9F%AD%E5%B0%8F%E6%9C%89%E8%B6%A3%E7%9A%84%E9%A2%98%202&amp;url=/archives/yi-xie-duan-xiao-you-qu-de-ti-2" width="1" height="1" alt="" style="opacity:0;">
<p>cover: Pixiv ID 141075191</p>
<hr>
<h2 id="三角函数">三角函数</h2>
<p>刷到飞哥的一道题。</p>
<ul>
 <li>求证： <span class="math math-inline">\sin\cos x&lt;\cos\sin x</span></li>
</ul>
<p>把柿子移到一边去，先求个导看看极值试试：</p>
<div class="math math-display">\begin{aligned} (\cos\sin x-\sin\cos x)'&amp;=0\\ \frac{\sin\sin x}{\sin x}&amp;=\frac{\cos\cos x}{\cos x} \end{aligned}</div>
<p>没发现有啥用，换思路。试着对外层的三角函数处理一下，用诱导公式有 <span class="math math-inline">\sin\cos x-\sin(\frac{\pi}{2}-\sin x)&lt;0</span> ，然后和差化积： <span class="math math-inline">2\cos(\frac{\cos x-\sin x}{2}+\frac{\pi}{4})\sin(\frac{\cos x+\sin x}{2}-\frac{\pi}{4})&lt;0</span> 。即 <span class="math math-inline">\sin(\frac{\sin x-\cos x}{2}+\frac{\pi}{4})\sin(\frac{\cos x+\sin x}{2}-\frac{\pi}{4})&lt;0</span> ，再来就是辅助角： <span class="math math-inline">\sin(\frac{\sin(x-\frac{\pi}{4})}{\sqrt 2}+\frac{\pi}{4})\sin(\frac{\sin(x+\frac{\pi}{4})}{\sqrt 2}-\frac{\pi}{4})&lt;0</span> ，借由 <span class="math math-inline">\sin</span> 和 <span class="math math-inline">\cos</span> 的周期性，只需要证明不等式在一个 <span class="math math-inline">2\pi</span> 周期成立就行了，那么可知左边 <span class="math math-inline">\sin</span> 里的柿子值域为 <span class="math math-inline">[-\frac{1}{\sqrt 2}+\frac{\pi}{4},\frac{1}{\sqrt 2}+\frac{\pi}{4}]</span> ，右边的则是 <span class="math math-inline">[-\frac{1}{\sqrt 2}-\frac{\pi}{4},\frac{1}{\sqrt 2}-\frac{\pi}{4}]</span> ，而 <span class="math math-inline">\frac{1}{\sqrt 2}&lt;\frac{\pi}{4}</span> ，两个 <span class="math math-inline">\sin</span> 显然异号，不等式成立。</p>
<p><strong>update on 2026.2.20</strong>：想了一种更简单的方法：只对 <span class="math math-inline">[-\pi,\pi]</span> 证明，首先发现右边恒正，所以左边负的情况可以不用考虑了，也就是只考虑 <span class="math math-inline">\cos x&gt;0</span> 的情况，再由 <span class="math math-inline">\cos</span> 的偶函数性质，只需在此基础上考虑 <span class="math math-inline">x\geq 0</span> 的情况，即 <span class="math math-inline">x\in [0,\frac{\pi}{2}]</span> 。</p>
<p>当 <span class="math math-inline">x\geq 0</span> 时，有一个很自然的放缩： <span class="math math-inline">\sin x\leq x</span>，等号成立当且仅当 <span class="math math-inline">x=0</span> ，应用于结论等价于证明 <span class="math math-inline">\sin \cos x\leq \cos x\leq\cos \sin x</span> 且等号不同时成立，等号不同时成立是显然的，因为当 <span class="math math-inline">\cos x=0</span> 时 <span class="math math-inline">\cos \sin x \not = 0</span>；由 <span class="math math-inline">\cos x</span> 在 <span class="math math-inline">[0,\frac{\pi}{2}]</span> 上单减，即证 <span class="math math-inline">x\geq\sin x</span> ，这个就是前面的放缩，显然成立。</p>
<p>这还有一个好理解的图像方式，对 <span class="math math-inline">\cos x\leq\cos \sin x</span> 进行等价的换元变成 <span class="math math-inline">\sin x\leq\cos \cos x</span> ，设单位圆上角 <span class="math math-inline">x</span> 的对应点为 <span class="math math-inline">A</span> ，那么在下图中 <span class="math math-inline">AC=\sin x</span> ， <span class="math math-inline">BC=\cos \cos x</span> ，从图中也能知道 <span class="math math-inline">\sin x\leq\cos \cos x</span> 。</p>
<p><img src="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fwww.fogflea.com%2Fupload%2Fimage-RlXs.png%3Fwidth%3D800&amp;size=m" alt="image-RlXs.png"></p>
<h2 id="阿美利卡的某道简单数论">阿美利卡的某道简单数论</h2>
<ul>
 <li><span class="math math-inline">a,b\in N^*</span> ，<span class="math math-inline">a&gt;b</span> ， <span class="math math-inline">\frac{1}{a}+\frac{1}{b}=\frac{2}{19}</span> ，求 <span class="math math-inline">a,b</span> .</li>
</ul>
<p>如果是填空题，我有一无脑方法😏（其实跟瞪眼也没啥区别，只是比直接瞪更好一点</p>
<p>设 <span class="math math-inline">k\in N^*</span> ，通个分，条件等价于 <span class="math math-inline">a+b=2k,\;ab=19k</span> ，那么 <span class="math math-inline">a,b</span> 就是 <span class="math math-inline">x^2-2kx+19k=0</span> 的两根，用求根公式有 <span class="math math-inline">a=k+\sqrt{k^2-19k},b=k-\sqrt{k^2-19k}</span> ，也就是要求 <span class="math math-inline">k^2-19k</span> 是完全平方数。</p>
<p>这里貌似看不出啥，设 <span class="math math-inline">k^2-19k=t^2</span> ，再用个求根公式有 <span class="math math-inline">k=\frac{19+\sqrt{19^2+4t^2}}{2}</span> ，这时要求 <span class="math math-inline">19^2+4t^2</span> 是个完全平方数，这不就是勾股数嘛，而原生勾股数的生成式长这样： <span class="math math-inline">(m^2-n^2)^2+(2mn)^2=(m^2+n^2)^2</span> ，其中要求 <span class="math math-inline">m\bot n,\;m\not\equiv n \;(\bmod\; 2)</span> ，到这已经给了很多可瞪的提示了，<span class="math math-inline">(2mn)^2</span> 显然只能是 <span class="math math-inline">4t^2</span> ，而 <span class="math math-inline">m^2-n^2</span> 自然是 <span class="math math-inline">19</span> ，依靠后者可以联想到 <span class="math math-inline">(n+1)^2-n^2=2n+1</span> 这一奇数生成器，很显然 <span class="math math-inline">m=10,n=9</span> 就能满足上述条件。这么一算 <span class="math math-inline">t=90,k=100</span> ，那么 <span class="math math-inline">a=190,b=10</span> 。</p>
<p>但是如果是大题这个方法无法证明解的唯一性，所以又想了另一个方法。条件柿子如果能化为好看的乘积柿，或许就能质因数分解了，事实上确实可以： <span class="math math-inline">\frac{1}{a}+\frac{1}{b}=\frac{2}{19}</span> 等价于 <span class="math math-inline">(2a-19)(2b-19)=19^2</span> （其实这里注意力好的话也能联想到刚才的奇数生成器，只是提示相对前一种方法没那么足），很容易发现 <span class="math math-inline">2a-19</span> 和 <span class="math math-inline">2b-19</span> 都要 <span class="math math-inline">&gt;0</span> ，那么 <span class="math math-inline">19^2</span> 也就两种分配方案 <span class="math math-inline">19\times19</span> 和 <span class="math math-inline">1\times 19^2</span> ，因为 <span class="math math-inline">a&gt;b</span> ，所以 <span class="math math-inline">2a-19=19^2,2b-19=1</span> ，解出 <span class="math math-inline">a=190,b=10</span> ，做完了。</p>
<h2 id="唐人压轴">唐人压轴</h2>
<p>刷 b 站看到的，这还压轴？</p>
<ul>
 <li>原题： <span class="math math-inline">\sin x+\sin 2x+\sin 3x=\cos x+\cos 2x+\cos 3x=0</span> ，求 <span class="math math-inline">\cos 2x</span> .</li>
</ul>
<p>和差化积： <span class="math math-inline">(2\cos x+1)\sin 2x=(2\cos x+1)\cos 2x=0</span> ，<span class="math math-inline">\cos x=-\frac{1}{2}</span> ，<span class="math math-inline">\cos 2x=-\frac{1}{2}</span> ，做完了。</p>
<p>加强一下：<span class="math math-inline">\sum_{i=1}^n \sin ix=\sum_{i=1}^n \cos ix=0</span> ，求 <span class="math math-inline">x</span> 的解集。</p>
<p>这个容易看出来就是 <span class="math math-inline">\frac{2k\pi}{n}</span> ，但是如何严谨的证明？注意到：</p>
<div class="math math-display">\begin{aligned} \sin nx-\sin 0 &amp;=\sum_{i=1}^{n} \sin ix-\sum_{i=0}^{n-1} \sin ix \\ &amp;= 0-\sum_{i=1}^{n} \sin (i-1)x\\ &amp;=-\sum_{i=1}^{n} (\sin ix \cos x-\cos ix \sin x)\\ &amp;=-\bigg(\sum_{i=1}^{n} \sin ix \bigg)\cos x + \bigg(\sum_{i=1}^{n} \cos ix \bigg)\sin x\\ &amp;=0 \end{aligned}</div>
<p>有 <span class="math math-inline">\sin nx=0</span> ，同理 <span class="math math-inline">\cos nx=0</span> ， 可知 <span class="math math-inline">x\in \{\frac{2k\pi}{n}|k\in \mathbb{Z}\}</span> 。</p>
<h2 id="局部不等式分析">局部不等式分析</h2>
<ul>
 <li><span class="math math-inline">a,b,c,d&gt;0,abcd=1</span> ，求证： <span class="math math-inline">\frac{1}{(1+a)^2}+\frac{1}{(1+b)^2}+\frac{1}{(1+c)^2}+\frac{1}{(1+d)^2}\geq 1</span> .</li>
</ul>
<p>刚开始的时候换了个元，变化后的等式条件并没有很好看。考虑从取等条件入手，显然可猜出来 <span class="math math-inline">a=b=c=d=1</span> 时柿子取到 <span class="math math-inline">1</span> ，对这个条件构造不等式的话貌似有三个大方向：</p>
<ul>
 <li>利用相等的性质，构造类基本不等式状物</li>
 <li>利用 <span class="math math-inline">=1</span> 的性质，更为灵活</li>
 <li>两个都用</li>
</ul>
<p>我先尝试了第一种，很不幸，由于平方里带常数的形式，怎么构造也造不出来，索性就放弃了。转第二种，常数的威力主要集中在乘法上，想起来这种分式有一种将分母里的某个加数删去的放缩法，于是将平方拆开来看看： <span class="math math-inline">\frac{1}{a^2+2a+1}</span> ，接下来真就是凭感觉和经验乱试了，貌似我运气比较好，蒙中了一个不等式： <span class="math math-inline">\frac{1}{a^2+2a+1}= \frac{b}{a^2b+2ab+b}\geq \frac{b}{a^2b+ab^2+a+b}=\frac{b}{(a+b)(1+ab)}</span> ，这个形式刚好可以两两配个对，即</p>
<div class="math math-display">\begin{aligned} \frac{1}{(1+a)^2}+\frac{1}{(1+b)^2}&amp;\geq\frac{b}{(a+b)(1+ab)}+\frac{a}{(a+b)(1+ab)}\\ &amp;=\frac{1}{1+ab} \end{aligned}</div>
<p><span class="math math-inline">c,d</span> 同理是 <span class="math math-inline">\frac{1}{1+cd}</span>，同时也是 <span class="math math-inline">\frac{1}{1+\frac{1}{ab}}</span> ，两式通分一加就是原结论。</p>
<p>其实个人感觉这种题没有一定的经验第一次根本做不出来，我能蒙出 std 真的纯属侥幸。</p>
<p>但是闲着也是闲着，于是又去网上找了相关局部不等式的相关信息学习了一下，发现了一种出现频率比较高的放缩 trick ，在此记录一下：</p>
<blockquote>
 <p>假设 <span class="math math-inline">f(x)\leq Ax+B</span> ，然后待定系数求 <span class="math math-inline">A,B</span> ，常用于证明轮换不等式。</p>
</blockquote>
<h2 id="期望之比">期望之比</h2>
<p>在油管上看到一个非常有意思的东西，大概意思是说有一个圆，在圆内均匀随机点三个点，保证三点不共线，如下图：</p>
<p><img src="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fwww.fogflea.com%2Fupload%2Fimage-GMji.png%3Fwidth%3D400&amp;size=m" alt="image-GMji.png"></p>
<p><span class="math math-inline">A,B,C</span> 就是随机点的三个点，求图中红色<strong>面积的期望</strong>与蓝色<strong>面积的期望</strong>之比。</p>
<p>图形十分不规则，如果常规建系肯定不好做，于是看了半天还是没思路，又倒回视频开头重新看了一遍题目描述，其中对于均匀随机的解释中的一句话给了我 hint ：</p>
<blockquote>
 <p>まず、「偏りなく無作為に点を打つ」といったが,正確には、円の面積を1として、円の内部の面積Sの任意の領域に対して、点がその領域に入る確率がSになるように打つ</p>
</blockquote>
<p>神秘机翻： 就是如果设圆的面积为 <span class="math math-inline">1</span> ，那么在圆内随机点一个点在圆内某个面积为 <span class="math math-inline">S</span> 的区域内的概率就是 <span class="math math-inline">S</span> 。</p>
<p>粗略写一下期望比的柿子：</p>
<div class="math math-display">\frac{E[Red]}{E[Blue]}=\frac{\;\;\displaystyle\sum_{S_R} S_R\cdot p(S_R)\;\;}{\;\;\displaystyle\sum_{S_B} S_B\cdot p(S_B)\;\;}</div>
<p><span class="math math-inline">S_R</span> 就可以视作另一个随机点在红色区域的概率，那么 <span class="math math-inline">\displaystyle\sum_{S_R} S_R\cdot p(S_R)</span> 就能视作一个新点点在红区的概率，<span class="math math-inline">S_B</span> 同理，问题就转化为了按顺序点四个点，求最后一个点在红区的概率比在蓝区的概率。</p>
<p>到这里就容易考虑了，考虑任意四个点，而这四个点的任意顺序都是等概率的，进而有每个点作为第四个点也是等概率的，所以只对任意的四点单独考虑，发现有凸四边形和凹四边形两种情况：</p>
<ul>
 <li>凸四边形：</li>
</ul>
<p>考虑每个点作为最后一个点，发现全部既不在红区也不在蓝区，对答案无影响。</p>
<ul>
 <li>凹四边形：</li>
</ul>
<p>考虑每个点作为最后一个点，发现仅有一个点在蓝区，剩下三个点都在红区，可得出概率比是 <span class="math math-inline">3</span> 。</p>
<p>综合一下，<span class="math math-inline">\frac{E[Red]}{E[Blue]}=3</span> 。这个结果与圆形无关。</p>
<p>然而视频后面又跟了一问，假设圆半径为 <span class="math math-inline">r</span> ，求 <span class="math math-inline">E[Blue]</span> .</p>
<p>没想到啥方法，设极坐标系下三个点坐标为 <span class="math math-inline">(i,x),(j,y),(k,z)</span> ，那么 <span class="math math-inline">S_B=\frac{1}{2}|\sum\limits_{cyc}xy\sin(j-i)|</span> ，直接枚举：</p>
<p>设算子 <span class="math math-inline">\mathop {S_x}\limits^u f(x)</span> 表示 <span class="math math-inline">\displaystyle\int_0^{u}f(x)dx</span></p>
<div class="math math-display">\begin{aligned} E[Blue]&amp;= \mathop {S_{i}}\limits^{2\pi} \mathop {S_{j}}\limits^{2\pi} \mathop {S_{k}}\limits^{2\pi} \mathop {S_{x}}\limits^{r} \mathop {S_{y}}\limits^{r} \mathop {S_{z}}\limits^{r} \frac{1}{2}|\sum\limits_{cyc}xy\sin(j-i)| \frac{xyz}{(\pi r^2)^3} \\ &amp;=\frac{35}{8\pi r^6} \mathop {S_{x}}\limits^{r} \mathop {S_{y}}\limits^{r} \mathop {S_{z}}\limits^{r} xyz\sum\limits_{cyc}xy\\ &amp;=\frac{35\cdot 3}{8\pi r^6} \mathop {S_{x}}\limits^{r} \mathop {S_{y}}\limits^{r} \mathop {S_{z}}\limits^{r} x^2y^2z\\ &amp;=\frac{35\cdot 3}{8\pi r^6} (\mathop {S_{x}}\limits^{r}x^2) (\mathop {S_{y}}\limits^{r}y^2) (\mathop {S_{z}}\limits^{r}z) \\ &amp;=\frac{35r^2}{48\pi} \end{aligned}</div>
<p>（为了做这个积分被迫学了一堆技巧 qwq</p>]]></description><guid isPermaLink="false">/archives/yi-xie-duan-xiao-you-qu-de-ti-2</guid><dc:creator>fogflea</dc:creator><enclosure url="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fpixiv.re%2F141075191.jpg&amp;size=m" type="image/jpeg" length="0"/><category>数学</category><pubDate>Wed, 18 Feb 2026 17:11:20 GMT</pubDate></item><item><title><![CDATA[一些短小有趣的题]]></title><link>https://www.fogflea.com/archives/yi-xie-duan-xiao-you-qu-de-ti</link><description><![CDATA[<img src="https://www.fogflea.com/plugins/feed/assets/telemetry.gif?title=%E4%B8%80%E4%BA%9B%E7%9F%AD%E5%B0%8F%E6%9C%89%E8%B6%A3%E7%9A%84%E9%A2%98&amp;url=/archives/yi-xie-duan-xiao-you-qu-de-ti" width="1" height="1" alt="" style="opacity:0;">
<p>cover: 素晴日 CG</p>
<hr>
<p>快回老家了，闲来无事遇到了一些有趣的小问题，作为活跃思维的小菜还是挺好的。</p>
<h2 id="pie-和-epi-谁大"><span class="math math-inline">\pi^e</span> 和 <span class="math math-inline">e^\pi</span> 谁大？</h2>
<p>这题是和同学讲批话时想到的。</p>
<p>主要体现了一个统一形式的想法，先说结论 <span class="math math-inline">e^\pi&gt; \pi^e</span> ，下面证明它。</p>
<p>即证：<span class="math math-inline">e^{\frac{1}{e}}&gt;\pi^{\frac{1}{\pi}}</span></p>
<p>分析一下增减性：对 <span class="math math-inline">x^{\frac{1}{x}}</span> 求导得 <span class="math math-inline">x^{\frac{1}{x}}\frac{1-\ln x}{x^2}</span> ，求一下极值点发现也就 <span class="math math-inline">x=e</span> 的时候行，再求个二阶导发现这是极大值，结论得证。</p>
<h2 id="求-32026-十进制下的后四位">求 <span class="math math-inline">3^{2026}</span> 十进制下的后四位</h2>
<p>在 b 站上刷到的，看视频的做法是一个二项式蜜汁展开，评论区里全是快速幂硬算和“注意到”，其实结合一点数论可以很快得到一个好想且手算也简单的做法。</p>
<p>由欧拉定理：<span class="math math-inline">3^{\varphi(10^4)} \equiv 3^{10^4\cdot (1-\frac{1}{2})(1-\frac{1}{5})}\equiv 3^{4000}\equiv 1 \;(\bmod \;10^4)</span></p>
<p>故 <span class="math math-inline">3^{2000}\equiv 1</span> 或 <span class="math math-inline">-1\;(\bmod \;10^4)</span></p>
<p>同样由欧拉定理：<span class="math math-inline">3^4\equiv 1\;(\bmod \;10)</span> 可知 <span class="math math-inline">3^{2000}\equiv 1\;(\bmod \;10)</span></p>
<p>那么 <span class="math math-inline">3^{2000}\equiv 1\;(\bmod \;10^4)</span></p>
<p>接下来只需用手动快速幂计算 <span class="math math-inline">3^{26}\equiv 9^{13}\equiv 81^{6}\cdot 9\equiv 6561^{3}\cdot9 \equiv 8329\;(\bmod \;10^4)</span></p>
<h2 id="嵌套">嵌套</h2>
<ul>
 <li><span class="math math-inline">f(f(x))=x^2-x+1</span> ，求 <span class="math math-inline">f(0)</span></li>
</ul>
<p>先把 <span class="math math-inline">x=0</span> 代一发再说： <span class="math math-inline">f(f(0))=1</span></p>
<p>然后看到这种嵌套就手痒求了个不动点，<span class="math math-inline">x=1</span> ，此时 <span class="math math-inline">f(x)=1</span> 或 <span class="math math-inline">0</span></p>
<p>当 <span class="math math-inline">f(1)=0</span> 时：再套一层 <span class="math math-inline">f</span> ，<span class="math math-inline">f(f(f(0)))=0=f^2(0)-f(0)+1</span> ， <span class="math math-inline">f(0)</span> 无解。</p>
<p>当 <span class="math math-inline">f(1)=1</span> 时：<span class="math math-inline">f(f(f(0)))=1=f^2(0)-f(0)+1</span> ，得 <span class="math math-inline">f(0)=0</span> 或 <span class="math math-inline">1</span> 。又因为 <span class="math math-inline">f(f(0))=1</span> 可知 <span class="math math-inline">f(0)=1</span> 。</p>
<h2 id="幂塔方程引发的小思考">幂塔方程引发的小思考</h2>
<p>起因是随机跳到一道<a href="https://www.luogu.com.cn/problem/P8457">黑</a>，显然我不会做（</p>
<p>但是对这个幂塔起了兴趣：</p>
<p>先对重幂下个定义：</p>
<div class="math math-display">\forall a \in R^* , n \in N</div>
<div class="math math-display">{^n}a= \left\{ \begin{aligned} &amp;1,\;n=0\\ &amp;a^{[^{n-1}a]},\;n&gt;0 \end{aligned} \right.</div>
<p>那么原问题就是求解方程 <span class="math math-inline">\lim_{n\rightarrow \infty} {^n}x=2</span> 。</p>
<p>看似可以用比较初等的方法得出解（不知道严谨性如何）：</p>
<p>原方程等价于 <span class="math math-inline">\lim_{n\rightarrow \infty} {^n}x=x^{\lim_{n\rightarrow \infty} {^n}x}=x^2=2</span> ，解得 <span class="math math-inline">x=\sqrt 2</span> 。</p>
<p>这里同时也能看出数列 <span class="math math-inline">\{{^n}[\sqrt 2]\}</span> 是收敛的，然后我就开始好奇在收敛的前提下 <span class="math math-inline">x</span> 最大能是多少呢，毕竟像 <span class="math math-inline">\{{^n}2\}</span> 的话就是发散的。</p>
<p>设 <span class="math math-inline">\lim_{n\rightarrow \infty} {^n}x=x_0</span> （其实 <span class="math math-inline">x_0</span> 也是数列 <span class="math math-inline">\{{^n}x\}</span> 的不动点），如法炮制可得 <span class="math math-inline">x^{x_0}=x_0</span> ，也就是要求方程 <span class="math math-inline">a^x=x</span> 有恰有一个解，此时的 <span class="math math-inline">a</span> 就是所求的最大值。</p>
<p>其实就是找到一个底数最大的指数函数与直线 <span class="math math-inline">y=x</span> 相切。</p>
<p><img src="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F2026.2.14.png%3Fwidth%3D400&amp;size=m" alt="2026.2.14.png"></p>
<p>这个其实也很好找，设切点为 <span class="math math-inline">(x_0,a^{x_0})</span> ，求个导有 <span class="math math-inline">a^{x_0}\ln a=1</span> ，即 <span class="math math-inline">x_0=-\frac{\ln\ln a}{\ln a}</span> ，那么切点就是 <span class="math math-inline">(-\frac{\ln\ln a}{\ln a},\frac{1}{\ln a})</span> ，又因为 <span class="math math-inline">y=x</span> 过 <span class="math math-inline">(0,0)</span> ，所以 <span class="math math-inline">\frac{\frac{1}{\ln a}-0}{-\frac{\ln\ln a}{\ln a}-0}=1</span> ，解出 <span class="math math-inline">a=e^{\frac{1}{e}}</span> 。</p>
<p>嗯？ <span class="math math-inline">e^{\frac{1}{e}}</span> 看上去有点熟悉？貌似比 <span class="math math-inline">\pi^{\frac{1}{\pi}}</span> 大来着？同时还是 <span class="math math-inline">x^{\frac{1}{x}}</span> 的最大值来着？</p>
<h2 id="其次分式">其次分式</h2>
<p>出现在神人自造的 gal 选项里（依旧 b 站刷到的），题本身没啥意思。</p>
<ul>
 <li><span class="math math-inline">a&gt;b&gt;0</span> ， 求 <span class="math math-inline">[\frac{a^2+b^2}{ab-b^2}]_{\min}</span> .</li>
</ul>
<p>其次啊，那就只关注 <span class="math math-inline">a,b</span> 的相对大小的影响，设 <span class="math math-inline">x=\frac{b}{a}</span> ，那 <span class="math math-inline">x \in (0,1)</span> ，那原式就是 <span class="math math-inline">\frac{x+x^{-1}}{1-x}</span> ，随便化简得 <span class="math math-inline">-1-\frac{1}{x+1+\frac{2}{x+1}-3} \geq 2+\sqrt 2</span></p>
<h2 id="神秘求极值">神秘求极值</h2>
<ul>
 <li><span class="math math-inline">x^2+y^2+xy=1</span> ，求 <span class="math math-inline">[2x^2+y^2]_{\max}</span></li>
</ul>
<p>长这种的，一般都先考虑做一些蜜汁换元把条件等式搞得简单一点，这里的条件里有个难看的 <span class="math math-inline">xy</span> ，考虑把它搞掉。随便配一下有 <span class="math math-inline">\frac{3}{4}x^2+(y+\frac{1}{2}x)^2=1</span> ，然后就能三角换元： <span class="math math-inline">x=\frac{2}{\sqrt 3}\sin t</span> ， <span class="math math-inline">y=\cos t-\frac{1}{\sqrt 3}\sin t</span> ，这样一来，极值就很好求了：</p>
<div class="math math-display">\begin{aligned} 2x^2+y^2&amp;=\frac{8}{3}\sin^2t+\cos^2t+\frac{1}{3}\sin^2t-\frac{2}{\sqrt 3}\sin t\cos t\\ &amp;=2-(\cos 2t+\frac{1}{\sqrt 3}\sin 2t)\\ &amp;=2-\frac{2}{\sqrt 3}\sin(2t+\frac{\pi}{3})\\ &amp;\leq 2+\frac{2}{\sqrt 3} \end{aligned}</div>
<p>其实第一眼看到 <span class="math math-inline">xy</span> 还有另一条路， <span class="math math-inline">xy</span> 可以跟旋转或是平方差扯上关系，所以 <span class="math math-inline">x^2+y^2+xy=1</span> 长的就像一个旋转的椭圆（虽然后续做法用不上椭圆的性质），一般情况下直接待定系数求旋转系数还挺麻烦的，但是这个柿子这么对称一看就知道旋转 <span class="math math-inline">\frac{\pi}{4}</span> 肯定没毛病，那么令 <span class="math math-inline">x\leftarrow \frac{x-y}{\sqrt 2},\;y\leftarrow \frac{x+y}{\sqrt 2}</span> ，原问题变成：<span class="math math-inline">\frac{x^2}{2}+\frac{3y^2}{2}=1</span> ，求 <span class="math math-inline">[\frac{3}{2}(x^2+y^2)+xy]_{\max}</span></p>
<p>直接把 <span class="math math-inline">\frac{x^2}{2}+\frac{3y^2}{2}=1</span> 除到 <span class="math math-inline">\frac{3}{2}(x^2+y^2)+xy</span> 分母上，有 <span class="math math-inline">\frac{3}{2}(x^2+y^2)+xy=\frac{\frac{3}{2}(x^2+y^2)+xy}{\frac{x^2}{2}+\frac{3y^2}{2}}</span> ，分子分母其次，用处理其次分式的套路就行。</p>
<div class="math math-display">\begin{aligned} \frac{\frac{3}{2}(x^2+y^2)+xy}{\frac{x^2}{2}+\frac{3y^2}{2}}&amp;=\frac{\frac{3}{2}(\frac{1}{k}+k)+1}{\frac{\frac{1}{k}}{2}+\frac{3k}{2}}\\ &amp;=1+\frac{2}{3(k+1)+\frac{4}{k+1}-6}\\ &amp;\leq 2+\frac{2\sqrt 3}{3} \end{aligned}</div>
<p><strong>update on 2026.2.15</strong>：啊啊啊啊又唐了，明明两个柿子已经其次搞什么旋转换元啊！直接用题目给的两个柿子除一下用相同的方法做就行了。
 <del>注意力很强，但是用在了绕远路上。</del></p>]]></description><guid isPermaLink="false">/archives/yi-xie-duan-xiao-you-qu-de-ti</guid><dc:creator>fogflea</dc:creator><enclosure url="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F%25E5%25B1%258F%25E5%25B9%2595%25E6%2588%25AA%25E5%259B%25BE%25202026-01-01%2520202731.png&amp;size=m" type="image/jpeg" length="465859"/><category>数学</category><pubDate>Sat, 14 Feb 2026 13:49:22 GMT</pubDate></item><item><title><![CDATA[dp 专题总结]]></title><link>https://www.fogflea.com/archives/dp-zhuan-ti-zong-jie</link><description><![CDATA[<img src="https://www.fogflea.com/plugins/feed/assets/telemetry.gif?title=dp%20%E4%B8%93%E9%A2%98%E6%80%BB%E7%BB%93&amp;url=/archives/dp-zhuan-ti-zong-jie" width="1" height="1" alt="" style="opacity:0;">
<p>cover: Pixiv ID 129563571</p>
<hr>
<h2 id="基础准备">基础准备</h2>
<p>当一个问题较为复杂，而它与子问题之间表现出良好的关系时，我们通常可以考虑由子问题推出原问题的答案。然而某些子问题会在被利用于求解原问题时重复求解，使得复杂度提高；因为原问题存在多种子问题的分解方式，有可能因为选择了不当的分解方式而使得复杂度提高。上述两个问题分别对应了 <strong>问题与子问题的求解顺序问题</strong> 和 <strong>问题状态的设计问题</strong> ，我认为 dp 的核心就是探讨这两个问题的做法，即 dp 中的 <strong>dp顺序</strong> 和 <strong>dp状态</strong>，当然 <strong>dp优化</strong> 也在 dp 状态这一块中占据了很大的位置。这两者（或者说三者）是互相联系的，通常需要同时进行考虑。</p>
<p>dp 可以解决的问题类型有二：最优化问题和求某个值，如果是求某个值的话更加偏向于递推问题或计数类（说实话这两类问题有什么区别吗。。。</p>
<h2 id="各种-dp-模型">各种 dp 模型</h2>
<ul>
 <li>
  <p><strong>区间 dp</strong> ：虽然说是区间 dp ，但早已从“区间”二字拓展开了。这类 dp 的问题通常能被描述成一个二元组 <span class="math math-inline">(x,y)</span> ，而其从子问题的合并则是将两个二元组合并。</p>
 </li>
 <li>
  <p><strong>背包 dp</strong>：</p>
  <p>这类问题要求规划一些物品的选择方案以实现在代价和法的情况下价值最大化，所以问题状态通常有两种：价值总和和容量，对应的每个物品有两个属性：价值和代价。</p>
  <p>物品之间的 dp 顺序通常无关全局答案紧要，有时合理安排物品顺序可以做到子问题的重复利用。</p>
  <p>同时背包在物品顺序这一维上还具有一些神秘的可合并性。</p>
  <ul>
   <li>
    <p><strong>01 背包</strong>：最简单的背包，每个物品只有两种选择状态（可分别用 <span class="math math-inline">0</span> 和 <span class="math math-inline">1</span> 来表示，即名称的由来）</p>
   </li>
   <li>
    <p><strong>完全背包</strong>：每个物品有无数个。</p>
   </li>
   <li>
    <p><strong>多重背包</strong>：每个物品的数量给定。</p>
   </li>
   <li>
    <p><strong>else</strong>：通常都是物品与物品之间有某些依赖关系，然后要综合利用以上三种背包综合解决。</p>
   </li>
  </ul>
 </li>
 <li>
  <p><strong>状压 dp</strong>：通常问题的某些维度中含有数量复杂度较高的类型，比如将一个大小为 <span class="math math-inline">n</span> 的集合的所有状态作为一个维度，其复杂度是 <span class="math math-inline">O(2^n)</span> 的，又或者是一个排列，那就是 <span class="math math-inline">O(n!)</span> 。但由于这些维度 <span class="math math-inline">n</span> 的规模较小，因此可以直接枚举 dp 。</p>
 </li>
 <li>
  <p><strong>树形 dp</strong>：一类在树上进行的 dp ，dp 的基本范式是从子节点（同时也是子问题）的解递归合并到父节点，最后获得整颗树的答案。</p>
 </li>
 <li>
  <p><strong>计数 dp</strong>：顾名思义，就是专门计数的 dp ，所以其实下面的数位 dp 可以算是计数 dp 的一种。没有固定的模式，需要组合数学知识（倒不如说它就是专门考这个的？</p>
 </li>
 <li>
  <p><strong>数位 dp</strong>：一类基于数字的位与位之间关系的计数 dp ，几乎都是要求求解满足某些数字特征的数有多少个。</p>
 </li>
</ul>
<h2 id="dp-中较为通用的-trick">dp 中较为通用的 trick</h2>
<ul>
 <li>
  <p><strong>倍增优化</strong>：有时会有这样的状态：每次单步转移 <span class="math math-inline">n \rightarrow n+1</span> ，然而 <span class="math math-inline">n</span> 可能非常大，而转移又满足一些奇妙的可加性（有点类似向量的加性），这是就可以将单步转移改为每次转移 <span class="math math-inline">2^i</span> 步，就可以将一个维度的复杂度降至 <span class="math math-inline">O(\log n)</span> ，比如这题：<a href="https://www.luogu.com.cn/problem/P3509">P3509 [POI 2010] ZAB-Frog</a>，很容易处理出每个点单步转移后的结果，然而因为跳跃次数太多，而这种“跳到下一个点”的转移符合可加性（<span class="math math-inline">A \rightarrow B=A \rightarrow M \rightarrow B</span>），所以可以将跳的次数维度倍增设成“跳 <span class="math math-inline">2^i</span> 次后”。</p>
 </li>
 <li>
  <p><strong>破环为链</strong>：应用很广的一个技巧，在 dp 中主要就是特殊处理环断处的状态和转移，例：<a href="https://www.luogu.com.cn/problem/P6064">P6064 [USACO05JAN] Naptime G</a> 。</p>
 </li>
 <li>
  <p><strong>贪心优化</strong>：应用这个技巧优化某个状态时，只需不断问自己：是否只关心这个状态的最值？一个很经典的应用是将 <code>bool</code> dp 数组转为 <code>int</code> 数组从而减少枚举某一维状态的浪费，例：<a href="https://www.luogu.com.cn/problem/CF1476F">CF1476F Lanterns</a></p>
 </li>
 <li>
  <p><strong>交换状态和值</strong>：来自记忆深处某道题的经验，想不起来是哪题了。貌似需要上一个贪心技巧作为状态和值交换的桥梁。</p>
 </li>
 <li>
  <p><strong>子问题直接计算对全局的贡献</strong>：适用于子问题的解受到其他非包含子问题影响（即两问题有交但并不是包含关系），且影响可拆分的情况，例：<a href="https://www.luogu.com.cn/problem/P3177">P3177 [HAOI2015] 树上染色</a> 。</p>
 </li>
 <li>
  <p><strong>减少暴力 dp 的状态</strong>：先暴力 dp ，然后一步一步通过分讨/发现冗余信息（可以通过联系所求或性质）减少所记状态数，例：<a href="https://www.luogu.com.cn/problem/P12546">P12546 [UOI 2025] Convex Array</a></p>
 </li>
</ul>
<h2 id="杂项">杂项</h2>
<h3 id="一段一段转移的-dp">一段一段转移的 dp</h3>
<p>有这么一类在序列上进行规划的 dp ，方程通式长这样：</p>
<div class="math math-display">f_i \leftarrow f_j+w(j,i)</div>
<p><span class="math math-inline">w(l,r)</span> 是区间 <span class="math math-inline">[l,r]</span> 的价值函数。</p>
<p>姑且不论 <span class="math math-inline">w</span> 的计算代价，光是枚举状态通常就已经有 <span class="math math-inline">O(n^2)</span> 了，然而对于不同的 <span class="math math-inline">w</span> 及待选决策 <span class="math math-inline">j</span> 的边界有不同的优化 dp 转移的方式来降低这一复杂度。</p>
<ul>
 <li><strong>单调队列优化</strong></li>
</ul>
<p>用 <a href="https://www.luogu.com.cn/problem/P10978">P10978 Fence</a> 作为例子，设 <span class="math math-inline">f_{i,j}</span> 表示前 <span class="math math-inline">i</span> 个人刷满前缀 <span class="math math-inline">j</span> 的最大收入，分类讨论后其中一条柿子是</p>
<div class="math math-display">f_{i,j} = \max_{j-L_i \leq k &lt; S_i}\{f_{i-1,k}+(j-k)P_i\}</div>
<p>即</p>
<div class="math math-display">f_{i,j} = jP_i+\max_{j-L_i \leq k &lt; S_i}\{f_{i-1,k}-kP_i\}</div>
<p>像这种<strong>左右边界随 <span class="math math-inline">j</span> 单调</strong>，<strong><span class="math math-inline">w</span> 只与待选决策有关</strong>的情况就能用单调队列优化，这里就是维护 <span class="math math-inline">f_{i,j}-jP_i</span> 。</p>
<ul>
 <li><strong>线段树优化</strong></li>
</ul>
<p>改一下刚才的柿子（顺便简化一下）：</p>
<div class="math math-display">f_i=\max_{l_i \leq j \leq r_i} \{f_j+114514j\}</div>
<p>这下左右边界的单调性没了，但仍然满足 <strong><span class="math math-inline">w</span> 只与待选决策有关</strong>，所以通过添加一个 <span class="math math-inline">\log</span> 的复杂度将单调队列变为线段树等数据结构仍然可以做。</p>
<p>有时可能 <span class="math math-inline">w</span> 还会遇上绝对值符号，通常做法是拆开分正负分别搞。</p>
<p>如果使用平衡树等数据结构还能支持更复杂的操作。</p>
<p>剩下的还有斜率优化和四边形不等式优化（感觉 noip 不会考所以先不写）</p>
<h3 id="排列插入段-dp">排列插入段 dp</h3>
<p>例题：<a href="https://www.luogu.com.cn/problem/P5999">P5999 [CEOI 2016] kangaroo</a></p>
<p>一般就是规定升序或降序插入排列的每一个数，设 <span class="math math-inline">f_{i,j}</span> 表示已经插了前缀 <span class="math math-inline">i</span> ，分成了 <span class="math math-inline">j</span> 段的答案，插入转移一般是考虑四种情况：插入段头，插入段尾，开新段，合并两段，<strong>注意这里的插入是相对插入而非绝对插入</strong>，所以可以看出这里本质是将对每个<strong>合法排列</strong>计数转换为对<strong>合法插入或合并操作序列</strong>计数从而使得问题可以被规划。</p>]]></description><guid isPermaLink="false">/archives/dp-zhuan-ti-zong-jie</guid><dc:creator>fogflea</dc:creator><enclosure url="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F129563571_p0_master1200.jpg&amp;size=m" type="image/jpeg" length="67890"/><category>方法总结</category><pubDate>Tue, 10 Feb 2026 13:24:15 GMT</pubDate></item><item><title><![CDATA[NOIP前若干trick，思考方式及注意事项大复习]]></title><link>https://www.fogflea.com/archives/noipqian-ruo-gan-trick-si-kao-fang-shi-ji-zhu-yi-shi-xiang-da-fu-xi</link><description><![CDATA[<img src="https://www.fogflea.com/plugins/feed/assets/telemetry.gif?title=NOIP%E5%89%8D%E8%8B%A5%E5%B9%B2trick%EF%BC%8C%E6%80%9D%E8%80%83%E6%96%B9%E5%BC%8F%E5%8F%8A%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9%E5%A4%A7%E5%A4%8D%E4%B9%A0&amp;url=/archives/noipqian-ruo-gan-trick-si-kao-fang-shi-ji-zhu-yi-shi-xiang-da-fu-xi" width="1" height="1" alt="" style="opacity:0;">
<p>cover: Pixiv ID 138508251</p>
<hr>
<p>update on 2025.12.30：补完，本来是想在 noip2025 前做一个大复习的，因为时间原因没干完。现在退役后时间多了就把这补完了。（发现自己惊人地退化了</p>
<p>update on 2025.1.5：重构，将一些比较细的东西放到了其他文章，以这篇文章为根树形链接到其他文章。</p>
<p>以下为正文</p>
<hr>
<blockquote>
 <p>与君共勉</p>
</blockquote>
<p>距离 NOIP 还有一天，再做什么题也积累不了什么了，不如把自己刷过的题再看一遍，好好复习一下过去一年自己累积的知识和打的模拟赛，<strong>不要让学过的在考场发挥不出效用。</strong></p>
<p>下面让我们开始复习吧！</p>
<h1 id="做一道题的流程我的">做一道题的流程（我的</h1>
<h2 id="1-读题--5-min">1 读题 &lt; 5 min</h2>
<p>注意点：</p>
<ul>
 <li>形式化题意</li>
 <li>数据范围</li>
 <li>时空限制</li>
</ul>
<p>要求：认真快速，<strong>以不读错题为最优先！</strong></p>
<h2 id="2-确定题目基本属性--1-min">2 确定题目基本属性 &lt; 1 min</h2>
<ul>
 <li>写出可能的时间复杂度，<strong>多考虑一些不寻常的时间复杂度</strong>，比如利用 <code>bitset</code> 的 <span class="math math-inline">O(\frac{}{w})</span> ，以及根号分治，分块带来的 <span class="math math-inline">O(\sqrt\ )</span> 做法
  <del>（本人常常忘记</del>
  。</li>
 <li>确定题目类型 tag ，可以自由组合，常见：构造题，ds 题，计数题，最优化题，判断题，其他计算题。</li>
 <li>明确有哪些限制，哪些性质，所要求的对象。（可以写下来</li>
</ul>
<h2 id="frac52-人类智慧时间--3-min构造题独享"><span class="math math-inline">\frac{5}{2}</span> 人类智慧时间 &lt; 3 min（构造题独享？</h2>
<p>反正我只在构造题给这个时间。</p>
<p>注意保存假算法，
 <del>说不定能水分呢。</del></p>
<h2 id="3-正式考虑做法--15-min">3 正式考虑做法 &lt; 15 min</h2>
<h3 id="31-确定大致算法">3.1 确定大致算法</h3>
<p>首先根据 2 的 tag 写出大范围算法及初步操作。</p>
<p>下面给出一些可能的初步操作：</p>
<h4 id="311-一些可能的初步操作">3.1.1 一些可能的初步操作</h4>
<ul>
 <li>通用：
  <ul>
   <li>弱化问题
    <ul>
     <li>优化暴力</li>
     <li>特殊性质推广</li>
    </ul></li>
   <li>标准化，例如：用值-下标，从初态走到目标和从目标走到初态的互化。</li>
   <li>正难则反</li>
   <li>考虑信息的性质，形态</li>
   <li>删除和增加的互化</li>
   <li>子问题复用</li>
   <li>切换主体</li>
   <li>考虑一些数学结构或模型比如笛卡尔树</li>
  </ul></li>
 <li>构造题：
  <ul>
   <li>从数据中找规律</li>
   <li>差分，前缀和</li>
   <li>交错，奇偶</li>
   <li>裂项，抵消</li>
  </ul></li>
 <li>ds 题：
  <ul>
   <li>离线，更进一步的：时光倒流，莫队，CDQ</li>
   <li>预处理</li>
   <li>先考虑不带修</li>
  </ul></li>
 <li>计数题：
  <ul>
   <li>考虑 <span class="math math-inline">O(ans)</span> 的可行性</li>
   <li>容斥，全=合法+不合法</li>
   <li>切换计数主体（算权重</li>
   <li>dp</li>
   <li>分治</li>
   <li>打表</li>
  </ul></li>
 <li>最优化题：
  <ul>
   <li>二分</li>
   <li>贪心</li>
   <li>dp</li>
   <li>容斥，全=最优+最劣</li>
  </ul></li>
 <li>判断题
  <ul>
   <li>
    <del>不可以，总司令</del>
   </li>
   <li>通常转化为其他题</li>
  </ul></li>
 <li>其他计算：这里是一些更具体的 trick 和手法，见下文</li>
</ul>
<hr>
<h3 id="32-分析">3.2 分析</h3>
<p>从 3.1 的列举的各种做法中依次考虑当前最有可能的做法，失败后记录断点，然后换下一个。</p>
<h4 id="321三种常用的手段">3.2.1三种常用的手段。</h4>
<ul>
 <li>分析数据：看样例，造数据打表，可用于猜/验证性质</li>
 <li>推导：证明，推式子，其实就是直接想</li>
 <li>套模型：勾连一些基础算法，可以理解为建模，比如：
  <ul>
   <li>沃柑，这个有后效性的 dp 式子怎么这么像三角不等式，<a href="https://www.luogu.com.cn/problem/P7214">治療計画</a></li>
  </ul></li>
</ul>
<hr>
<p>注意力强可以注意到某些性质，那注意力不强怎么办？</p>
<p>对于一些对象我们可以主动研究它的一些容易被忽略的属性和子结构！下面列举一些：</p>
<h4 id="322-一些容易被忽略的属性和子结构">3.2.2 一些容易被忽略的属性和子结构</h4>
<ul>
 <li>通用：
  <ul>
   <li>数量，（这个东西会不会很少？可以枚举这个搞吗？</li>
  </ul></li>
 <li>区间（矩阵类似）：
  <ul>
   <li>交区间和包含区间</li>
  </ul></li>
 <li>序列：
  <ul>
   <li>差分序列，前缀和序列</li>
   <li>顺序无关时可考虑 <code>cnt</code> 数组，即元素出现次数序列</li>
  </ul></li>
 <li>点（图论）：
  <ul>
   <li>各种度数</li>
   <li>lca</li>
   <li>dfn</li>
   <li>轻重儿子</li>
  </ul></li>
 <li>边：
  <ul>
   <li>定向（无向边</li>
  </ul></li>
 <li>路径：
  <ul>
   <li>lca（树上</li>
   <li>端点</li>
   <li>前后缀</li>
  </ul></li>
 <li>树：
  <ul>
   <li>dfn 序列</li>
  </ul></li>
 <li>无向（子）图：
  <ul>
   <li>各种奇技淫树：
    <ul>
     <li>e-bcc 缩点后的树</li>
     <li>圆方树</li>
     <li>Kruskal 重构树</li>
     <li>最短路树</li>
     <li>dfs 树</li>
    </ul></li>
   <li>两种连通分量：
    <ul>
     <li>e-bcc</li>
     <li>v-bcc</li>
    </ul></li>
  </ul></li>
 <li>有向（子）图：
  <ul>
   <li>dfs 树</li>
   <li>强连通分量缩点 DAG 图</li>
   <li>基环树（如果有点的度数性质</li>
  </ul></li>
</ul>
<hr>
<p>推导分析不知道从哪里下手的话，不妨试试这些基础的研究方法：</p>
<h4 id="323-一些基础的研究方法">3.2.3 一些基础的研究方法</h4>
<ul>
 <li>序列：
  <ul>
   <li>一般：
    <ul>
     <li>将 <span class="math math-inline">(i,a_i)</span> 作为坐标点画到平面上</li>
     <li>将 <span class="math math-inline">[l,r]</span> 视为一个坐标点 <span class="math math-inline">(l,r)</span> 画到平面上</li>
     <li>直方图，可以是原序列或 <code>cnt</code> 数组</li>
     <li>笛卡尔树</li>
    </ul></li>
   <li><span class="math math-inline">01</span> 序列：
    <ul>
     <li>原序列</li>
     <li>括号树（可三度化，用于研究序列结构及变化</li>
     <li>折线图（便于考虑 1,0 数量最大最小以及变化</li>
    </ul></li>
   <li>排列：
    <ul>
     <li>逆序对</li>
     <li>康托展开</li>
    </ul></li>
  </ul></li>
 <li>图：参考 3.2.2</li>
 <li>树：
  <ul>
   <li>dfn 序列也可以使用序列的研究方法！</li>
  </ul></li>
</ul>
<hr>
<h3 id="33-停机">3.3 停机</h3>
<p>到这里有两种可能：</p>
<p>1.我做出来了！</p>
<blockquote>
 <p>可以先明确整个算法流程和细节，看看假没假，假了看情况要不要回 3.2，没假就评估一下实现难度，时长啥的，具体情况具体分析。</p>
</blockquote>
<p>2.思路枚举完了，没做出来。</p>
<blockquote>
 <p>开部分分或者换题。<strong>不要摆烂或灰心，你一定行。</strong></p>
</blockquote>
<h1 id="更加具体的-trick">更加具体的 trick</h1>
<h2 id="一般">一般</h2>
<ul>
 <li><a href="https://www.luogu.com.cn/problem/P9525">[JOIST 2022] 团队竞技 / Team Contest</a> 从每个个体切换主体至值域。</li>
 <li><a href="https://www.luogu.com.cn/problem/CF1270H">CF1270H Number of Components</a> 考虑相邻位置对全局的贡献，又是切换主体，维护单个计数对象对所有受该单个计数对象影响合法性的所有对象（通常是所求对象</li>
 <li><a href="https://www.luogu.com.cn/problem/P5304">[GXOI/GZOI2019] 旅行者</a> 若 <span class="math math-inline">f(a,b)</span> 满足类似最短路的性质，可以考虑划分成 <span class="math math-inline">\log</span> 个集合对 <span class="math math-inline">S,T</span> ，计算 <span class="math math-inline">f(S,T)</span></li>
 <li><a href="https://www.luogu.com.cn/problem/P2824">[HEOI2016/TJOI2016] 排序</a> 体现了普通序列与 <span class="math math-inline">01</span> 序列的转化，不失为一种序列偏序的研究手段。</li>
 <li><a href="https://www.luogu.com.cn/problem/P12012">[Ynoi April Fool's Round 2025] 牢爱</a> 解的个数 <span class="math math-inline">&gt;</span> 解的值域 =&gt; 必有解，实际上这是在关注答案的<strong>数量</strong>这个属性</li>
 <li><a href="https://www.luogu.com.cn/problem/P12555">P12555 [UOI 2024] AND Array</a> 分高低位根号分治</li>
 <li><a href="https://www.luogu.com.cn/problem/P7214">P7214 [JOISC 2020] 治療計画</a> 最短路优化 <span class="math math-inline">\texttt{DP}</span> ，实际上只要观察到某些式子与图论的等式/不等式相似就能用，比如说 Floyd 的递推式 <span class="math math-inline">f_{u,v}=f_{u,k} \wedge f_{k,v}</span></li>
 <li><a href="https://www.luogu.com.cn/problem/P3295">P3295 [SCOI2016] 萌萌哒</a> ST 表优化区间可合并操作，倍增能维护许多区间修改并支持区间可合并性的信息</li>
</ul>
<h2 id="构造">构造</h2>
<h2 id="计数">计数</h2>
<ul>
 <li><a href="https://www.luogu.com.cn/problem/P7324">P7324 [WC2021] 表达式求值</a> <span class="math math-inline">\texttt{trick}: x=\sum_{i=1}^{inf}[i\leq x]</span> ，然后接容斥</li>
</ul>
<h2 id="最优化">最优化</h2>
<h2 id="dp">DP</h2>
<ul>
 <li><a href="https://www.luogu.com.cn/problem/P3177">[HAOI2015] 树上染色</a> 不一定要 dp 子问题的解，也可以直接 dp 对全局答案的贡献，适用于子问题受到其他非包含子问题影响，且影响可拆分的情况</li>
 <li><a href="https://www.luogu.com.cn/problem/U588953">U588953 计树</a> 森林 <span class="math math-inline">dp</span> ,本质是提取树上连通块的特征进行的 dp</li>
 <li><a href="https://www.luogu.com.cn/problem/P5999">P5999 [CEOI 2016] kangaroo</a> 排列插入段 DP 板子，本质是在 dp 一个排列的前缀时记录当前排列<strong>值域</strong>上的某些信息（可以是连续段个数，空位个数或其他...</li>
 <li><a href="https://www.luogu.com.cn/article/sy8mzh49">CF1476F Lanterns</a> 可达性 dp 用 <code>bitset</code> 优化，或利用贪心等某些性质将 <code>bool</code> 数组转为 <code>int</code> 数组</li>
 <li>先暴力 dp ，然后一步一步通过分讨/发现冗余信息（可以通过联系所求或性质）减少所记状态数</li>
</ul>
<h2 id="贪心">贪心</h2>
<h2 id="图论">图论</h2>
<ul>
 <li><a href="https://www.luogu.com.cn/problem/P4366">[Code+#4] 最短路</a> 减少或替代无用边，更常用的有倍增/线段树优化建图</li>
 <li><a href="https://www.luogu.com.cn/problem/P9111">[福建省队集训2019] 最大权独立集问题</a> 点边顺序问题转化为给边定向</li>
 <li><a href="https://www.luogu.com.cn/problem/P7214">P7214 [JOISC 2020] 治療計画</a> 势能线段树优化最短路，当最短路的长只跟点全有关时，那么在传统 Dijkstra 中每个点只被松弛一次</li>
 <li><a href="https://www.luogu.com.cn/problem/CF1556G">CF1556G Gates to Another World</a> 二进制相关连边考虑线段树，还有时间倒流，删边转为建边</li>
 <li><a href="https://www.luogu.com.cn/problem/P5327">P5327 [ZJOI2019] 语言</a> 利用 <span class="math math-inline">\texttt{dfn}</span> 序描述树上连通块</li>
 <li><a href="https://www.luogu.com.cn/problem/CF1628E">CF1628E Groceries in Meteor Town</a> 一个点集的 <span class="math math-inline">\texttt{lca}</span> 可以转化为 <span class="math math-inline">\texttt{dfn}</span> 最大的点和 <span class="math math-inline">\texttt{dfn}</span> 最小的点的 <span class="math math-inline">\texttt{lca}</span> 并用线段树动态维护</li>
</ul>
<h2 id="数据结构">数据结构</h2>
<ul>
 <li><a href="https://www.luogu.com.cn/problem/P2048">P2048 [NOI2010] 超级钢琴</a> 用可持久化数据结构处理二维沿一轴 <span class="math math-inline">O(1)</span> 变化问题</li>
 <li><a href="https://www.luogu.com.cn/problem/P10071">P10071 [CCO 2023] Triangle Collection</a> 线段树维护括号匹配个数</li>
 <li><a href="https://www.luogu.com.cn/problem/P4198">P4198 楼房重建</a> 这个东西有很多名字，但实际上这是利用线段树将序列排成 <span class="math math-inline">\log</span> 段，然后遍历这些段并利用这 <span class="math math-inline">\log</span> 个段中提前维护的信息组合成答案</li>
</ul>
<h2 id="数论">数论</h2>
<ul>
 <li><a href="https://www.luogu.com.cn/problem/AT_arc084_b">[ABC077D] Small Multiple</a> 一些取模相关的可以试试图论建模</li>
 <li><a href="https://www.luogu.com.cn/problem/P9989">[Ynoi Easy Round 2023] TEST_69</a> 利用 lcm 判断一个区间内的数是否都能整除某个数</li>
 <li><a href="https://www.luogu.com.cn/problem/CF1463F">CF1463F Max Correct Set</a> 猜结论：循环节</li>
 <li><a href="https://www.luogu.com.cn/problem/P3599"># P3599 Koishi Loves Construction</a> 不要惧怕模意义下的除法，大胆尝试逆元</li>
</ul>
<h2 id="字符串">字符串</h2>
<h1 id="祖宗大全">祖宗大全</h1>
<p><strong>谨防见祖宗！！！</strong></p>
<p><a href="https://www.luogu.com.cn/discuss/898803">进食后人：中元节见祖宗的最好方法是</a></p>
<p><a href="https://www.luogu.me/article/vywu8a6x">【挂分指南】日常做题错点解析</a></p>
<p><a href="https://www.luogu.me/article/v9bnnilz">挂分导论</a></p>]]></description><guid isPermaLink="false">/archives/noipqian-ruo-gan-trick-si-kao-fang-shi-ji-zhu-yi-shi-xiang-da-fu-xi</guid><dc:creator>fogflea</dc:creator><enclosure url="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F138508251p0.png&amp;size=m" type="image/jpeg" length="881209"/><category>方法总结</category><pubDate>Sat, 24 Jan 2026 09:41:44 GMT</pubDate></item><item><title><![CDATA[记录最近的两道印象稍深的题]]></title><link>https://www.fogflea.com/archives/ji-lu-zui-jin-de-liang-dao-yin-xiang-shao-shen-de-ti</link><description><![CDATA[<img src="https://www.fogflea.com/plugins/feed/assets/telemetry.gif?title=%E8%AE%B0%E5%BD%95%E6%9C%80%E8%BF%91%E7%9A%84%E4%B8%A4%E9%81%93%E5%8D%B0%E8%B1%A1%E7%A8%8D%E6%B7%B1%E7%9A%84%E9%A2%98&amp;url=/archives/ji-lu-zui-jin-de-liang-dao-yin-xiang-shao-shen-de-ti" width="1" height="1" alt="" style="opacity:0;">
<h2 id="n-阶-0-t-数列">“<span class="math math-inline">n</span> 阶 <span class="math math-inline">0</span>-<span class="math math-inline">t</span> 数列”</h2>
<p>若 <span class="math math-inline">n</span> 项数列 <span class="math math-inline">\{a_n\}</span> 同时满足 <span class="math math-inline">\sum_{i=1}^{n}a_i=0 \;,\sum_{i=1}^{n}|a_i|=t\;,(t\in N^* )</span> ，则称 <span class="math math-inline">\{a_i\}</span> 为 “<span class="math math-inline">n</span> 阶 <span class="math math-inline">0</span>-<span class="math math-inline">t</span> 数列” 。</p>
<ul>
 <li>(1) 若等比数列 <span class="math math-inline">\{a_i\}</span> 为 “<span class="math math-inline">6</span> 阶 <span class="math math-inline">0</span>-<span class="math math-inline">1</span> 数列”，写出各项。</li>
 <li>(2) 若等差数列 <span class="math math-inline">\{a_n\}</span> 为 “<span class="math math-inline">2k-1</span> 阶 <span class="math math-inline">0</span>-<span class="math math-inline">t</span> 数列” (<span class="math math-inline">k\geq2</span> 且 <span class="math math-inline">k \in N^* </span> ， <span class="math math-inline">t\in N^* </span>) ，求 <span class="math math-inline">a_n</span> （用 <span class="math math-inline">k,n,t</span> 表示)。</li>
 <li>(3) <span class="math math-inline">\{a_i\}</span> 为 “<span class="math math-inline">n</span> 阶 <span class="math math-inline">0</span>-<span class="math math-inline">t</span> 数列” ，记 <span class="math math-inline">s</span> 为其前缀和且满足 <span class="math math-inline">\exists \; m\in [1,n] ,s_m=\frac{t}{2}</span> ，求证： <span class="math math-inline">\{s_n\}</span> 不是 “<span class="math math-inline">n</span> 阶 <span class="math math-inline">0</span>-<span class="math math-inline">t</span> 数列” 。</li>
</ul>
<h3 id="1">(1)</h3>
<p>容易构造</p>
<p><span class="math math-inline">1,-1,1,-1,1,-1,1,-1</span></p>
<p><em>语：就算是 T19 (1) 出这么简单真的好吗。</em></p>
<p><strong>update on 2026.1.24 22:48:11.4514</strong> ：答案是 <span class="math math-inline">\frac{1}{6},-\frac{1}{6},\frac{1}{6},-\frac{1}{6},\frac{1}{6},-\frac{1}{6}</span> ，还有一种全部取负号就行。作者码字时路昏了。</p>
<blockquote>
 <p>就算是 T19 (1) 出这么简单真的好吗。</p>
</blockquote>
<h3 id="2">(2)</h3>
<p>设 <span class="math math-inline">a_n=pn+b</span> ，那么：</p>
<div class="math math-display">\begin{align} \sum_{i=1}^{2k-1}(pi+b)=0 \;, \\ \sum_{i=1}^{2k-1}|pi+b|=0 \end{align}</div>
<p>由 (1) ：</p>
<div class="math math-display">\begin{aligned} \sum_{i=1}^{2k-1}(pi+b)&amp;=0 \\ p\sum_{i=1}^{2k-1}i+b(2k-1)&amp;=0 \\ pk(2k-1)+b(2k-1)&amp;=0 \\ (pk+b)(2k-1)&amp;=0 \\ \end{aligned}</div>
<p>因为 <span class="math math-inline">k\in N^* </span> ，所以 <span class="math math-inline">b=-pk</span> ，代入 (2) 得：</p>
<div class="math math-display">\begin{aligned} \sum_{i=1}^{2k-1}|p(i-k)|&amp;=t \\ |p|\sum_{i=1}^{2k-1}|(i-k)|&amp;=t \\ |p|&amp;=\dfrac{t}{\displaystyle\sum_{i=1}^{2k-1}|(i-k)|} \\ |p|&amp;=\dfrac{t}{\displaystyle\sum_{i=1}^{k-1}(k-i)+\sum_{i=k+1}^{2k-1}(i-k)} \\ |p|&amp;=\dfrac{t}{\displaystyle\sum_{i=1}^{k-1}(k-i)+\sum_{i=1}^{k-1}i} \\ |p|&amp;=\dfrac{t}{\displaystyle\sum_{i=1}^{k-1}k} \\ |p|&amp;=\dfrac{t}{k(k-1)} \\ \end{aligned}</div>
<p>所以 <span class="math math-inline">a_n=\pm \frac{t}{k(k-1)}n \mp \frac{t}{k-1}</span></p>
<p><em>语：超级喜欢这种带 <span class="math math-inline">\Sigma</span> 狂推柿子的题。推柿子，爽！（解几敬谢不敏</em></p>
<h3 id="3">(3)</h3>
<p>为了方便记 <span class="math math-inline">s_0=0</span></p>
<p>题意转成这样：</p>
<p>数列 <span class="math math-inline">\{s_n\}</span> 满足</p>
<div class="math math-display">\begin{align} s_n=0 \;,\\ s_m=\frac{t}{2} \;, \\ \sum_{i=1}^{n}|s_i-s_{i-1}|=t \\ \end{align}</div>
<p>求证 <span class="math math-inline">\{s_n\}</span> 不同时满足</p>
<div class="math math-display">\begin{align} \sum_{i=1}^{n}s_i=0 \;, \\ \sum_{i=1}^{n}|s_i|=t \end{align}</div>
<p>证明：假设能同时满足。</p>
<p>考虑绝对值不等式 <span class="math math-inline">\sum_{i=1}^{n}|x_i|\geq |\sum_{i=1}^n x_i|</span> 对 (5) 放缩：</p>
<div class="math math-display">\begin{aligned} t&amp;=\sum_{i=1}^{n}|s_i-s_{i-1}| \\ &amp;=\sum_{i=1}^{m}|s_i-s_{i-1}|+\sum_{i=m+1}^{n}|s_i-s_{i-1}| \\ &amp;\geq|s_m|+|s_n-s_m|=2|s_m|=t \end{aligned}</div>
<p>等号成立当且仅当 <span class="math math-inline">s_1\leq s_2\leq \dots \leq s_n</span> 或 <span class="math math-inline">s_1\geq s_2\geq \dots \geq s_n</span></p>
<p>因为 <span class="math math-inline">t=t</span> 是一个恒等式，所以 <span class="math math-inline">s_1\leq s_2\leq \dots \leq s_n</span> 或 <span class="math math-inline">s_1\geq s_2\geq \dots \geq s_n</span>，又由于 <span class="math math-inline">s_m=\frac{t}{2}\geq 0=s_n</span>，故 <span class="math math-inline">s_1\geq s_2\geq \dots \geq s_n</span></p>
<p>结合 (7) 知：<span class="math math-inline">s_1=\frac{t}{2}</span> ，由 (6) ：<span class="math math-inline">\sum_{i=2}^{n}s_i=-\frac{t}{2} &lt; 0</span> ，与 <span class="math math-inline">s_2\geq \dots \geq s_n=0</span> 矛盾，故命题不成立。</p>
<p><em>语：总感觉哪里的逻辑有漏洞，好像是 “同时满足” 和反证法的结合那一块。std 貌似是把绝对值不等式证了一遍。</em></p>
<p><strong>update on 2026.1.26</strong> ：
 <br>
 发现违和感所在了，等号成立的两条不等式链都少了 <span class="math math-inline">s_0</span> ，所以都不用结合 (6) 和 (7) ，根据不等式链可知 <span class="math math-inline">s_0=s_1=s_2=\dots=s_n=0</span> ，而条件说必存在 <span class="math math-inline">m\in[1,n]</span> ，使得 <span class="math math-inline">s_m=\frac{t}{2} &gt;0</span> ，所以显然有矛盾。</p>
<p>这说明这题还存在加强版，满足题设前三个条件的数列都不存在，更不必说 <span class="math math-inline">n</span> 阶 <span class="math math-inline">0</span>-<span class="math math-inline">t</span> 数列了。</p>
<p><strong>update on 2026.1.30</strong> ：
 <br>
 又番唐了，这才是真正的漏洞：对于 (5) 时将其分成了 <span class="math math-inline">[1,m]</span> 和 <span class="math math-inline">(m,n]</span> 的两段，这两段是可以异号的，所以在上一次更新的基础上还有两种情况： <span class="math math-inline">s_0\leq s_1\leq s_2\leq \dots \leq s_m \geq s_{m+1}\geq \dots \geq s_n</span> 和 <span class="math math-inline">s_0\geq s_1\geq s_2\geq \dots \geq s_m \leq s_{m+1}\leq \dots \leq s_n</span> ，不过这其实也很好搞，因为不满足 (6) ，所以结论仍然成立，只是用上了 (6) 说明上次更新所说的加强版只能加强一半（毕竟没用上 (7) ）</p>
<hr>
<h2 id="折射率到底偏大还是偏小">折射率到底偏大还是偏小</h2>
<p><img src="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fimage.png&amp;size=m" alt="image.png"></p>
<p>如图， <span class="math math-inline">a</span> 是入射光线， <span class="math math-inline">b</span> 是经过半圆形玻璃砖折射后的折射光线，<span class="math math-inline">\Phi</span> 是法线，然后原题有说用这个测折射率，不小心碰了一下云云，最后问题可以变成：将玻璃砖逆旋一个小角 <span class="math math-inline">\theta</span> ，其他不变，新的折射光线 <span class="math math-inline">b'</span> 在 <span class="math math-inline">b</span> 上方还是下方？</p>
<p>“标准答案” 犯了没考虑旋转本身带来的偏移的错误（它认为是在下方，我认为在上方，然后我折腾一中午想我错在哪了结果发现原来 tm 是答案错了</p>
<p>来证明一下：</p>
<p><img src="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fimage-QQEP.png&amp;size=m" alt="image-QQEP.png"></p>
<p>设旋转后的新法线为 <span class="math math-inline">\Phi '</span> ，<span class="math math-inline">a</span> 和 <span class="math math-inline">\Phi '</span> 入射角 <span class="math math-inline">\alpha - \theta</span> 对应的折射角为 <span class="math math-inline">\gamma</span> ，即证：<span class="math math-inline">\sin \gamma &gt; \sin (\beta-\theta)</span></p>
<p>考虑对所证不等式进行变形：</p>
<p>由折射定律：</p>
<div class="math math-display">\begin{aligned} \sin (\alpha-\theta) \; \frac{\sin \beta}{\sin \alpha} &amp;&gt; \sin (\beta-\theta) \\ \sin (\alpha-\theta)\sin \beta &amp;&gt; \sin (\beta-\theta)\sin \alpha \\ \cos(\alpha-\beta-\theta) - \cos(\alpha+\beta-\theta) &amp;&gt; \cos(-\alpha+\beta-\theta) - \cos(\alpha+\beta-\theta)\\ \cos(\alpha-\beta-\theta)&amp;&gt; \cos(-\alpha+\beta-\theta) = \cos(\alpha-\beta+\theta)\\ |\alpha-\beta-\theta|&amp;&lt;|\alpha-\beta+\theta|=\alpha-\beta+\theta \end{aligned}</div>
<p>若 <span class="math math-inline">\alpha-\beta-\theta&gt;0</span> ，由 <span class="math math-inline">\theta&gt;0</span> 不等式成立；反之，由 <span class="math math-inline">\alpha&gt;\beta</span> 不等式同样成立。</p>]]></description><guid isPermaLink="false">/archives/ji-lu-zui-jin-de-liang-dao-yin-xiang-shao-shen-de-ti</guid><dc:creator>fogflea</dc:creator><enclosure url="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fpixiv.re%2F136849830.jpg&amp;size=m" type="image/jpeg" length="0"/><category>数学</category><pubDate>Sat, 24 Jan 2026 09:34:56 GMT</pubDate></item><item><title><![CDATA[人类比 AI 强在哪？]]></title><link>https://www.fogflea.com/archives/ren-lei-bi-ai-qiang-zai-na</link><description><![CDATA[<img src="https://www.fogflea.com/plugins/feed/assets/telemetry.gif?title=%E4%BA%BA%E7%B1%BB%E6%AF%94%20AI%20%E5%BC%BA%E5%9C%A8%E5%93%AA%EF%BC%9F&amp;url=/archives/ren-lei-bi-ai-qiang-zai-na" width="1" height="1" alt="" style="opacity:0;">
<p>cover: Pixiv ID 133535742</p>
<hr>
<p>以下内容是从我在生活中对 AI 的使用，新闻的了解，一些书籍的阅读以及对 AI 原理的粗略学习中总结出的个人观点，如果有不同的声音欢迎讨论和补充。（或者纯看个乐子也行</p>
<p>自从 22 年 gpt 火了以来，AI 就不断刷新着大众的认知，甚至有不少人忧心忡忡：AI 将来会不会彻底取代人类？但是，在经过思考和实践过后，会发现这样的观点未免有些夸张。目前人类的能力在我看来仍然远远强于 AI （即使 AI 在某个领域很强，也即所谓专家系统</p>
<p>所以，人类究竟比 AI 强在哪？</p>
<h2 id="1-知识迁移能力">1. 知识迁移能力</h2>
<p>人脑的功耗约为 20w~30w ，上网一查数据，训练 AI 的最低配置都在 500w-1000w 以上，而千瓦万瓦才是厂商平均水平,所以训练 AI 的功耗是人脑学习的百倍千倍，从学习资料上同样也是人类的千万倍。而效果是 AI 通常只在某一领域（也包括运动方面）内可以达到专家的水平级别，一个正常人类完全可以做到这一点，更重要的是，人类除了擅长某些事，同样也擅长走路，奔跑等运动（这对于人类来说很简单，可对 AI 完全是不同的概念），以及进行复杂的社交活动。所以单单从效率上 AI 就已经一败涂地了（有种弱智 vs 顶级天才的感觉？</p>
<p>所以是什么导致了 AI 的效率远不如人类呢？主要问题肯定在算法的相关设计上，我认为比较突出的一个因素就是知识迁移能力，成语说明：举一反三。</p>
<p>来个例子：你和 AI 同时学习 C 语言，并且你俩都会 python 。你身为人类，在学习过程中发现一个重要事实：C 语言的一些语法和 python 挺像的，比如 while 循环都是不满足条件就退出，if 后面跟条件，赋值时变量名都写等号左边等等，哎，于是你学起来就很痛快，只需要将 python 的相关语法稍微改改，就形成了 C 的记忆；而 AI 呢，我猜目前的 AI 应该都是从头开始喂 C 的相关数据，就算有聪明一点的做法应该也是给数据进行处理，涉及 AI 模型的处理肯定不如人脑。这样就导致了相同的东西学两遍，牺牲了效率。</p>
<p>那么为何 AI 知识迁移能力比较差呢？我觉得很重要的一个原因就是强大的 AI 模型本身现在对人类（也是对 AI 自己）来说就是一个只有输入输出的黑箱，当前对其内部构造的研究不像人脑一样有较为明确功能分区，也就是可解释性不足，而现在的生物学早已对人脑不同功能的区域有了研究，比如左脑管理性，右脑管感性，海马体和记忆有关，脑的 s，v，w，h 区等等，至于 AI 的模型，虽然确实已经有人展开了研究（比如有人发现模型中有一些地方和人脑类似），但肯定研究进度不及人脑的研究，毕竟后者是前者的上限，后者没突破，前者也无法超于后者。</p>
<p>于是由于不了解 AI 模型的内部结构，人类就没办法给 AI 设计有效的知识迁移算法，进而大大增加了 AI 学习的成本。</p>
<h2 id="2-创新能力">2. 创新能力</h2>
<p>因为训练数据都是基于人类及人类工具产生的，所以我认为人类的知识边界就是 AI 的知识边界。想要拓宽知识的边界，可以通过迁移已有的经验和神秘的灵感。刚才已经说明了 AI 的迁移能力较差，而所谓的灵感 AI 目前应该没有，毕竟这个东西太玄学，但可以确定的是灵感是基于很强的迁移能力之上的，没有迁移能力，那灵感就变成了随机数。</p>
<p>还可以从艺术的角度上看，AI 可以生成各种风格的画作，对于大师的作品也能精确模仿。然而叫它创造一个全新的流派，这似乎十分困难。</p>
<h2 id="3-自主生成任务能力">3. 自主生成任务能力</h2>
<p>这个也十分显然，平时所用的 AI （文生文，文生图等等）都是等待用户进行输入在进行输出，人类却可以产生 “想要做某些事” 的念头，自行生成任务。但把视角拉到远处，其实人类也是根据 “输入” 才能进行生成任务的 “输出”，只不过人类能够处理的输入远远比 AI 广泛和复杂。人类不仅能处理当下周围环境的数据（其实生物基本都能做到这一点），还能够生成五感无法感知的想象进行处理（自行输出作为输入），甚至能够预测其他智能体包括自身在内的以上活动，而这些 AI 当前还无法做到。</p>
<p>于是我又开始思考这是为什么。最开始的想法是 AI 感官比较少，摄取的信息不足，不够丰富，然后发现这是反过来的：AI 的感官理应比人类更强，对于物理世界的感知可以依靠比人类感官更强大的传感器，信息这方面也可以通过互联网进行远比人类快得多的检索。</p>
<p>仔细想想又绕回了迁移能力，的确模型不够强大是一个很重要的因素，但总觉得应该还有别的原因，也许是这方面没有市场什么的导致没人研究？（如果扯到 AGI 又感觉太广泛了）</p>
<hr>
<p>我感觉比较一般的能力差不多就这三个比较重要的了，其实细分到各种专业人类有很多较 “小” 的能力仍是 AI 当前无法替代的（特别是拓宽人类知识边界的研究方面）。</p>
<p>但是如果人类迈入了 AGI 的时代，那么人类真不一定能在以上方面胜过 AGI 了———然而我又转念一想，到了那时，人类的脑科学水平肯定已经特别发达了，对于人脑潜能的激发于现在说不定是意想不到的，这又使我重燃了人类能胜于 AGI 的希望。但 AGI 在物理硬件上的限制较少，对于模型的算法修改也很容易；而人类毕竟是肉身，所以还得要求化学，医学等相关学科跟进才行。</p>
<p>嗨，管它呢，我又不一定能等到到那个时代，这篇文章的想法也几乎都是自己脑子里意淫的，很多东西也没有实际考据，说不定也不对。</p>]]></description><guid isPermaLink="false">/archives/ren-lei-bi-ai-qiang-zai-na</guid><dc:creator>fogflea</dc:creator><enclosure url="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fpixiv.re%2F133535742.jpg&amp;size=m" type="image/jpeg" length="0"/><category>杂谈</category><pubDate>Fri, 23 Jan 2026 09:43:12 GMT</pubDate></item><item><title><![CDATA[用 AI 完成了萌灵殿的创建]]></title><link>https://www.fogflea.com/archives/yong-ai-wan-cheng-liao-meng-ling-dian</link><description><![CDATA[<img src="https://www.fogflea.com/plugins/feed/assets/telemetry.gif?title=%E7%94%A8%20AI%20%E5%AE%8C%E6%88%90%E4%BA%86%E8%90%8C%E7%81%B5%E6%AE%BF%E7%9A%84%E5%88%9B%E5%BB%BA&amp;url=/archives/yong-ai-wan-cheng-liao-meng-ling-dian" width="1" height="1" alt="" style="opacity:0;">
<p>起因是某天中午忘记带作业回宿舍写了，在床上无所事事时突发奇想想给博客搞个页面展示一些比较喜欢的角色，于是今天就开搞了。</p>
<p>
 <del>AI 真是太好用了你知道吗</del>
 ，特别是对于这种只需要写总共也就一百来行的各种 css ，html 和 js，只要描述清楚，这种简单的样式特效简直轻轻松松。而我只用安心的找数据，写写吐槽，顺便设计一下卡片长什么样就行了。
</p>
<p>目前只添加了 41 个角色，还没加完，后面持续更新。</p>
<p>后面可能还会给每个角色搞个不同颜色的阴影或者不同样式的吐槽框什么的吧。。</p>
<p>放个快照：</p>
<p><img src="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F%25E5%25B1%258F%25E5%25B9%2595%25E6%2588%25AA%25E5%259B%25BE%25202026-01-17%2520213608.png&amp;size=m" alt="屏幕截图 2026-01-17 213608.png"></p>]]></description><guid isPermaLink="false">/archives/yong-ai-wan-cheng-liao-meng-ling-dian</guid><dc:creator>fogflea</dc:creator><enclosure url="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F%25E5%25B1%258F%25E5%25B9%2595%25E6%2588%25AA%25E5%259B%25BE%25202026-01-17%2520211423.png&amp;size=m" type="image/jpeg" length="54751"/><category>记录</category><pubDate>Sat, 17 Jan 2026 13:12:37 GMT</pubDate></item><item><title><![CDATA[一道等轴双曲线的旋转做法]]></title><link>https://www.fogflea.com/archives/yi-dao-deng-zhou-shuang-qu-xian-de-xuan-zhuan-zuo-fa</link><description><![CDATA[<img src="https://www.fogflea.com/plugins/feed/assets/telemetry.gif?title=%E4%B8%80%E9%81%93%E7%AD%89%E8%BD%B4%E5%8F%8C%E6%9B%B2%E7%BA%BF%E7%9A%84%E6%97%8B%E8%BD%AC%E5%81%9A%E6%B3%95&amp;url=/archives/yi-dao-deng-zhou-shuang-qu-xian-de-xuan-zhuan-zuo-fa" width="1" height="1" alt="" style="opacity:0;">
<p>cover: Pixiv ID 92191625</p>
<hr>
<p>这周不去研学，待在教室里板刷了八套数学卷，发现了一道有意思的题。</p>
<h2 id="题目大意">题目大意</h2>
<p>有双曲线 <span class="math math-inline">C:x^2-y^2=2</span> ，设 <span class="math math-inline">A</span> 为其左顶点，<span class="math math-inline">D(0,\sqrt{2})</span> ， <span class="math math-inline">M</span> 在左支上， <span class="math math-inline">N</span> 在 <span class="math math-inline">C</span> 右支上，且 <span class="math math-inline">M,A,N</span> 三点不共线， <span class="math math-inline">AD</span> 平分 <span class="math math-inline">\angle MAN</span> ，求证： <span class="math math-inline">MN</span> 过定点。</p>
<p><img src="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F2026.1.14-1.PNG&amp;size=m" alt="2026.1.14-1.PNG"></p>
<h2 id="答案做法">答案做法</h2>
<p>很经典，因为平分线的缘故， <span class="math math-inline">AM</span> 和 <span class="math math-inline">AN</span> 斜率积为 <span class="math math-inline">1</span> ，那么设 <span class="math math-inline">MN:y=kx+t, M(x_1,y_1),N(x_2,y_2)</span> 。</p>
<p>联立 <span class="math math-inline">MN,C</span> ：</p>
<div class="math math-display">\left\{ \begin{aligned} &amp;y=kx+t\\ &amp;x^2-y^2=2 \end{aligned} \right.</div>
<p>有 <span class="math math-inline">(1-k^2)x^2-2ktx-t^2-2=0</span>， <span class="math math-inline">\Delta</span> 一通乱算 <span class="math math-inline">&gt;0</span> ，然后韦达： <span class="math math-inline">x_1+x_2=\frac{2kt}{1-k^2},x_1x_2=-\frac{t^2+2}{1-k^2}</span> 。</p>
<p>然后表达斜率积为 <span class="math math-inline">1</span> 这个条件又是一通乱算得到 <span class="math math-inline">(k^2-1)(-\frac{t^2+2}{1-k^2})+(kt-\sqrt{2})\frac{2kt}{1-k^2}+t^2-2=0</span> ，于是 <span class="math math-inline">t=0</span> 或 <span class="math math-inline">t=\sqrt{2}k</span>。</p>
<p><span class="math math-inline">t=\sqrt{2}k</span> 这个 <span class="math math-inline">M,A,N</span> 三点共线了，舍掉，剩个 <span class="math math-inline">t=0</span> ，那就是恒过 <span class="math math-inline">(0,0)</span> 。</p>
<p>想法很简单，但算起来是真麻烦，所以我一开始就没打算这么干。</p>
<h2 id="我的做法">我的做法</h2>
<p>先扯点别的，之前某一次周测最后一题也有一个等轴双曲线，当时看到 <span class="math math-inline">x^2-y^2</span> 条件反射平方差出 <span class="math math-inline">(x+y)(x-y)</span> ，突然灵机一动，如果把 <span class="math math-inline">(x+y),(x-y)</span> 看成新坐标系下的 <span class="math math-inline">x,y</span> 会怎样呢？然后就想到 OI 里有个 trick ：曼哈顿距离转切比雪夫距离好像也是类似这样干的，本质貌似是做了个坐标轴旋转，再一想 <span class="math math-inline">x^2-y^2=1</span> 转个 <span class="math math-inline">\frac{\pi}{4}</span> 跟 <span class="math math-inline">xy=1</span> 挺像的，和 <span class="math math-inline">(x+y)(x-y)</span> 的形式也差不多。但这个东西在第二问还比标答简单一点，第三问完全没用。</p>
<p>但是这个技巧放到这题就有用了。先给出坐标轴顺旋 <span class="math math-inline">\theta</span> 的公式：</p>
<p>设 <span class="math math-inline">(x,y)</span> 在新系下点坐标为 <span class="math math-inline">(x',y')</span> ，那么</p>
<div class="math math-display">\left\{ \begin{aligned} x=x'\cos \theta -y'\sin \theta\\ y=y'\cos \theta +x'\sin \theta \end{aligned} \right.</div>
<p>知 <span class="math math-inline">(x',y')</span> 求 <span class="math math-inline">(x,y)</span> 只要同样顺旋 <span class="math math-inline">-\theta</span> 就行了。</p>
<div class="math math-display">\left\{ \begin{aligned} x'=x\cos \theta +y\sin \theta\\ y'=y\cos \theta -x\sin \theta \end{aligned} \right.</div>
<p>那么这题直接将坐标轴顺旋 <span class="math math-inline">\frac{\pi}{4}</span> ，那么 <span class="math math-inline">C</span> 变为 <span class="math math-inline">xy=1</span> ， <span class="math math-inline">DA</span> 就是直线 <span class="math math-inline">x=-1</span> ，此时设 <span class="math math-inline">M(x_0,\frac{1}{x_0}),N(x_1,\frac{1}{x_1}),x_0&lt;0,x_1&gt;0</span> ，因为 <span class="math math-inline">AD</span> 平分 <span class="math math-inline">\angle MAN</span> ，所以得出 <span class="math math-inline">-k_{AM}=k_{AN}</span> ，就是 <span class="math math-inline">-\frac{\frac{1}{x_0}+1}{x_0+1}=\frac{\frac{1}{x_1}+1}{x_1+1}</span> 。</p>
<p>这个式子太对称了，化简和因式分解都超舒服：</p>
<div class="math math-display">\begin{aligned} -\frac{\frac{1}{x_0}+1}{x_0+1}&amp;=\frac{\frac{1}{x_1}+1}{x_1+1}\\ (\frac{1}{x_0}x_1+1+x_1+\frac{1}{x_0})+(\frac{1}{x_1}x_0+1+x_0+\frac{1}{x_1})&amp;=0\\ ({x_1}^2+x_0x_1+x_0{x_1}^2+x_1)+({x_0}^2+x_0x_1+{x_0}^2x_1+x_1)&amp;=0\\ (x_0+x_1)^2+x_0x_1(x_0+x_1)+(x_0+x_1)&amp;=0\\ (x_0+x_1)(x_0+x_1+x_0x_1+1)&amp;=0\\ (x_0+x_1)(x_0+1)(x_1+1)&amp;=0 \end{aligned}</div>
<p>有 <span class="math math-inline">x_0=-x_1</span> 或 <span class="math math-inline">x_0=-1</span> 或 <span class="math math-inline">x_1=-1</span> ，显然后两个因为 <span class="math math-inline">x_1&gt;0</span> 和 <span class="math math-inline">M,A,N</span> 三点不共线被 ban 了，那只能是 <span class="math math-inline">x_0=-x_1</span> 啦，这里一眼就能看出 <span class="math math-inline">MN</span> 过原点。（变换回来仍是原点）</p>]]></description><guid isPermaLink="false">/archives/yi-dao-deng-zhou-shuang-qu-xian-de-xuan-zhuan-zuo-fa</guid><dc:creator>fogflea</dc:creator><enclosure url="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F92191625_p0_master1200.jpg&amp;size=m" type="image/jpeg" length="77081"/><category>数学</category><pubDate>Wed, 14 Jan 2026 14:23:34 GMT</pubDate></item><item><title><![CDATA[线段树专题总结]]></title><link>https://www.fogflea.com/archives/xian-duan-shu-zhuan-ti-zong-jie</link><description><![CDATA[<img src="https://www.fogflea.com/plugins/feed/assets/telemetry.gif?title=%E7%BA%BF%E6%AE%B5%E6%A0%91%E4%B8%93%E9%A2%98%E6%80%BB%E7%BB%93&amp;url=/archives/xian-duan-shu-zhuan-ti-zong-jie" width="1" height="1" alt="" style="opacity:0;">
<p>cover: Pixiv ID 99302008</p>
<hr>
<p>本文重在记录线段树的各类应用技巧和各种相关问题，不会讲解线段树的原理及实现（当然也可以把这个看成一个大纲一样的东西，尽量做到每个板块由浅入深）。</p>
<h2 id="基础准备">基础准备</h2>
<p>线段树是一个主要用于维护序列（或是集合）信息的数据结构，主要原理是预处理 <span class="math math-inline">O(\log)</span> 个子区间的信息，而这些子区间之间的关系呈一棵二叉树结构，通过组合这些预处理好的信息得到被查询区间的信息（通常要求所维护信息具有可合并性）。</p>
<h3 id="各种线段树变种">各种线段树变种</h3>
<p>记序列长为 <span class="math math-inline">n</span> ，维护的信息合并时间为 <span class="math math-inline">O(\alpha)</span></p>
<ul>
 <li>
  <p>朴素线段树（堆式存储）：最典型的用法是维护区间和，当然也能维护矩阵乘法，哈希这些可合并信息，空间 <span class="math math-inline">O(n)</span> （通常开 <span class="math math-inline">4</span> 倍空间），查询和区间修改都是 <span class="math math-inline">O(\alpha\log n)</span> 。还有一个线段树二分的操作 <span class="math math-inline">O(\log n)</span>。</p>
 </li>
 <li>
  <p>动态开点线段树：将朴素线段树的堆式存储改为只将有用的节点建出来而不是排满每一层，这样就节约了空间（不用开 <span class="math math-inline">4</span> 倍了），其他同朴素线段树。通常用于维护值域（如果能离线的话，朴素线段树和离散化搭配通常效果也是一样的）。相较于朴素线段树，更是支持 <span class="math math-inline">O(n)</span> 合并两颗线段树（在某些情况下多次合并也是 <span class="math math-inline">O(n)</span> 的）。</p>
 </li>
 <li>
  <p>可持久化线段树：字面意思，就是可持久化后的朴素线段树，能维护多个版本，但一般要求两个相邻版本之间的变化是 <span class="math math-inline">O(1)</span> 的，所以很难做到朴素线段树的区间修改（除非能标记永久化），其他同朴素线段树。</p>
 </li>
 <li>
  <p>主席树：全称可持久化动态开点线段树，就是可持久化了动态开点线段树。</p>
 </li>
 <li>
  <p>势能线段树：在某些操作正常来讲并不支持信息的可合并性，但具有 “进行次数有限” 的性质，这时可以巧妙地设计线段树维护。</p>
 </li>
 <li>
  <p>单侧递归线段树（线段树维护单调栈，
   <del>兔队树</del>
   ）：这个非常神秘，个人认为是利用线段树地结构将序列排成 <span class="math math-inline">O(\log n)</span> 个段，再在这些段组成的序列上做单调栈的工作，只不过获取一个段的某些偏序信息时通常要在该段内做 <span class="math math-inline">O(\log n)</span> 的递归，所以查询是 <span class="math math-inline">O(\log n)</span> 的，其他同朴素线段树。</p>
 </li>
</ul>
<p>下面是这些线段树的各种用法及 trick 。</p>
<h2 id="朴素线段树">朴素线段树</h2>
<ul>
 <li>
  <p><a href="https://www.luogu.com.cn/problem/P3372">P3372 【模板】线段树 1</a> ，线段树最基础的应用。</p>
 </li>
 <li>
  <p><a href="https://www.luogu.com.cn/problem/P3373">P3373 【模板】线段树 2</a> ，设计信息合并和查询规则的基础题。</p>
 </li>
 <li>
  <p><a href="https://www.luogu.com.cn/problem/P1438">P1438 无聊的数列</a> ，线段树配合差分。</p>
 </li>
 <li>
  <p><a href="https://www.luogu.com.cn/problem/P4513">P4513 小白逛公园</a> ，理解线段树能维护可合并信息。
   <br>
   核心合并规则：</p>
  <pre><code class="language-cpp">struct node{ //节点信息
    int ls,//这个节点的最大前缀和
    rs,//这个节点的最大后缀和
    ans,//这个节点的最大子段和
    sum,//这个节点的总和
};

node merge(node l,node r){
    node res;
    res.ls=max(l.ls,l.sum+r.ls);
    res.rs=max(r.rs,r.sum+l.rs);
    res.ans=max({l.ans,r.ans,l.rs+r.ls});
    res.sum=l.sum+r.sum;
}
</code></pre>
 </li>
 <li>
  <p><a href="https://www.luogu.com.cn/problem/P3870">P3870 [TJOI2009] 开关</a> ，线段树二分基础。</p>
 </li>
 <li>
  <p><a href="https://www.luogu.com.cn/problem/P10071">P10071 [CCO 2023] Triangle Collection</a> 线段树维护括号匹配个数。</p>
 </li>
</ul>
<h2 id="动态开点线段树">动态开点线段树</h2>
<p>要用上动态开点线段树的话需求一般就两个：</p>
<ul>
 <li>
  <ol>
   <li>
    <p>要维护超长序列，但操作数只有 <span class="math math-inline">O(n)</span> 级别，最典型的就是维护值域（这时可以看作维护了一个数字集合）。</p>
   </li>
  </ol>
  <ul>
   <li>
    <p><a href="https://www.luogu.com.cn/problem/P13825">P13825 【模板】线段树 1.5</a> 动态开点线段树板子。</p>
   </li>
   <li>
    <p><a href="https://www.luogu.com.cn/problem/P5490">P5490 【模板】扫描线 &amp; 矩形面积并</a> 对横轴用扫描线，纵轴的值域用动态开点线段树维护。</p>
   </li>
  </ul>
 </li>
 <li>
  <ol start="2">
   <li>要使用线段树合并。</li>
  </ol>
  <ul>
   <li>
    <p><a href="https://www.luogu.com.cn/problem/P3605">P3605 [USACO17JAN] Promotion Counting P</a> 线段树合并板子。</p>
   </li>
   <li>
    <p><a href="https://www.luogu.com.cn/problem/P4556">P4556 【模板】线段树合并 / [Vani 有约会] 雨天的尾巴</a>
     <del>并非板子</del>
     ，经典线段树合并和树上差分结合。</p>
   </li>
  </ul>
 </li>
</ul>
<h2 id="可持久化线段树主席树">可持久化线段树/主席树</h2>
<ul>
 <li>
  <p><a href="https://www.luogu.com.cn/problem/P1383">P1383 高级打字机</a>(<a href="https://www.luogu.com.cn/problem/P3919">https://www.luogu.com.cn/problem/P3919</a>) 板子题。</p>
 </li>
 <li>
  <p><a href="https://www.luogu.com.cn/problem/P3919">P3919 【模板】可持久化线段树 1（可持久化数组）</a> 值得注意的是，可持久化数组的实现意味着许多数据结构都能通过可持久化线段树可持久化，比如并查集。</p>
 </li>
</ul>
<p>可持久化线段树还能干的就是让离线的扫描线在线（不带修），这很好理解，扫描线是按照某种顺序遍历了一个维度上的所有点，同时用数据结构维护这个点所在的另一个维度上的所有信息，从头到尾只用了一根线的变化求出答案，能这样做是因为题目有遍历的维度和时间维度重合的性质。</p>
<p><img src="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2FScanLineFollow.gif&amp;size=m" alt="ScanLineFollow.gif"></p>
<p>而通常相邻的扫描线的变化是 <span class="math math-inline">O(1)</span> 的，所以借助持久化的力量能将每一条线保存下来，而将这些线组织在一起的正是可持久化线段树。</p>
<p><img src="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2FScanLineWithPointSnapshots.gif&amp;size=m" alt="ScanLineWithPointSnapshots.gif"></p>
<p>常见特征是：元素具有两个属性，然后可以根据这两个属性将元素视为点刻画到平面上，并且点的个数合理，于是就能用可持久化线段树维护这个平面（其实本质上还是维护序列），也可以理解为对横轴上每个坐标都开了一个线段树。</p>
<p>这么讲有点迷，具体的例题：</p>
<ul>
 <li><a href="https://www.luogu.com.cn/problem/P2048">P2048 [NOI2010] 超级钢琴</a></li>
</ul>
<p>
 <del>这题其实有更简单的方法</del>
 ，这里的两个属性：编号和美妙度，但字段和不好搞，所以变成：编号 <span class="math math-inline">i</span> 和美妙度前缀和 <span class="math math-inline">sum_i</span> ，然后这题就变为选前 <span class="math math-inline">k</span> 大的元素二元组。选前 <span class="math math-inline">k</span> 大可以经典地用优先队列干，但是二元组的数量是 <span class="math math-inline">n^2</span> 的，所以得用主席树维护：对每个编号维护它前面出现过的 <span class="math math-inline">sum_j</span> 集合，而相邻编号集合相差不大，是 <span class="math math-inline">O(1)</span> 的，所以以编号为版本建立主席树，然后剩下就能套 <span class="math math-inline">n^2</span> 选前 <span class="math math-inline">k</span> 大的经典做法了。
</p>
<pre><code class="language-cpp">// 初始构建主席树的代码
#define mfy(i,j,x,f) t.rt[i]=t.add(t.rt[j],x,f,-M,M);
for(int i=1;i&lt;=n;++i){
    t.rt[i]=t.rt[i-1];
    if(i-l&gt;=0)
        mfy(i,i,sum[i-l],1);
    if(i-r-1&gt;=0)
        mfy(i,i,sum[i-r-1],-1);
    if(i-l&gt;=0)
        q.push((seg){sum[i]-qy(i,1),i,1});
}
</code></pre>
<ul>
 <li><a href="https://www.luogu.com.cn/problem/P6071">P6071 『MdOI R1』Treequery</a></li>
</ul>
<p>这题先分讨：</p>
<ul>
 <li>
  <p><span class="math math-inline">\operatorname{lca([l,r])}\in \operatorname{subtree}(p)</span> ：答案就是 <span class="math math-inline">\operatorname{dis}(p,\operatorname{lca([l,r])})</span> 。</p>
 </li>
 <li>
  <p>else case ：</p>
  <ul>
   <li><span class="math math-inline">[l,r]</span> 分布在 <span class="math math-inline">p</span> 的各个分支：答案为 <span class="math math-inline">0</span> 。</li>
   <li><span class="math math-inline">[l,r]</span> 只在 <span class="math math-inline">p</span> 的一个分支：从 <span class="math math-inline">p</span> 向祖先跳最小距离到祖先 <span class="math math-inline">A</span> 使得 <span class="math math-inline">A</span> 中存在 <span class="math math-inline">[l,r]</span> 的任一点，答案就是这个距离。可以树剖，然后在每一条重链上二分。</li>
  </ul>
 </li>
</ul>
<p>从这里可以看出其实只要搞出 <span class="math math-inline">O(1)\sim O(\log)</span> 查 <span class="math math-inline">[l,r]</span> 是否在 <span class="math math-inline">p</span> 子树或是整棵树除去 <span class="math math-inline">p</span> 子树的部分就可以了。那么这个很容易想到 <span class="math math-inline">\operatorname{dfn}</span> 序，这里同样以编号和 <span class="math math-inline">\operatorname{dfn}</span> 序作为两个属性构建平面（编号同样作为版本号），问题就变成了问一个横向范围 <span class="math math-inline">[l,r]</span> ，纵向范围 <span class="math math-inline">[l_1,r_1]</span> 的矩形中是否有点，利用前缀和对线段树的设计是简单的。</p>
<pre><code class="language-cpp">// 编号区间 [l,r] 中是否存在点的 dfn 在 [l1,r1] 内。
// t.query(ver,l,r) 是版本 ver 在 dfn 范围 [l,r] 的版本前缀和
bool is_in(int l,int r,int l1,int r1){
	if(r&lt;l||r1&lt;l1)return 0;
	return t.query(t.rt[r],l1,r1)-t.query(t.rt[l-1],l1,r1);
}
</code></pre>
<h2 id="势能线段树">势能线段树</h2>
<p>这个比较灵活，需要结合具体要维护的运算具体设计线段树，但一般想出操作有效性的判定方法就没什么问题。</p>
<ul>
 <li>
  <p><a href="https://www.luogu.com.cn/problem/P4145">P4145 上帝造题的七分钟 2 / 花神游历各国</a> 注意到开平方的次数经过 <span class="math math-inline">O(\log)</span> 次就变成 <span class="math math-inline">1</span> 了，所以有效操作总共也就 <span class="math math-inline">O(n\log)</span> ，于是可以暴力给每个数直接去开平方，每个区间维护是否还有非 <span class="math math-inline">1</span> 即可。</p>
 </li>
 <li>
  <p><a href="https://www.luogu.com.cn/problem/P9989">P9989 [Ynoi Easy Round 2023] TEST_69</a> 这个也是，有效操作不超过 <span class="math math-inline">O(n\log)</span> ，证明是容易的。而是否有效的判定则变为了这个区间内是否有数被 <span class="math math-inline">x</span> 整除。可以维护区间 <span class="math math-inline">\operatorname{lcm}</span> 。</p>
 </li>
 <li>
  <p><a href="https://codeforces.com/problemset/problem/438/D">CF438D The Child and Sequence</a> 复杂度同理，记一下最大值和区间和就行。</p>
 </li>
</ul>
<h2 id="单侧递归线段树">单侧递归线段树</h2>
<p>这个东西感觉就是，会了原理就基本会做题了，然而它的原理感觉十分难懂。。。</p>
<p>放一道最经典的题：<a href="https://www.luogu.com.cn/problem/P4198">P4198 楼房重建</a></p>]]></description><guid isPermaLink="false">/archives/xian-duan-shu-zhuan-ti-zong-jie</guid><dc:creator>fogflea</dc:creator><enclosure url="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F99302008_p0_master1200.jpg&amp;size=m" type="image/jpeg" length="88082"/><category>方法总结</category><pubDate>Sat, 10 Jan 2026 09:03:00 GMT</pubDate></item><item><title><![CDATA[新年第一Gal：素晴日]]></title><link>https://www.fogflea.com/archives/2026di-yi-gal-su-qing-ri</link><description><![CDATA[<img src="https://www.fogflea.com/plugins/feed/assets/telemetry.gif?title=%E6%96%B0%E5%B9%B4%E7%AC%AC%E4%B8%80Gal%EF%BC%9A%E7%B4%A0%E6%99%B4%E6%97%A5&amp;url=/archives/2026di-yi-gal-su-qing-ri" width="1" height="1" alt="" style="opacity:0;">
<p>cover: 素晴日</p>
<hr>
<p>新年好！</p>
<p>（以下严肃剧透</p>
<p>因为放元旦在家所以昨天把素晴日推完了。最开始还以为电波作之流都尽是些看不懂的谜语，堆砌华丽的辞藻之类的东西，事实上玩了之后才发现叙事什么的其实还挺清晰的，就算要开始探讨神秘哲学话题标志也挺明显，而且各角色对哲学问题的意见都挺易懂的。总之，这算是打破了我对电波就是 “无法交流” 的刻板印象吧。</p>
<p>那么，这游戏又是为何被称为电波神作呢？我的观点比较浅显：就是其 “氛围” 很 “电波” ，比如说：</p>
<p><img src="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F%25E5%25B1%258F%25E5%25B9%2595%25E6%2588%25AA%25E5%259B%25BE%25202026-01-02%2520094306.png&amp;size=m" alt=""></p>
<p>这里是所谓 “螺旋马泰” 的执行现场。黄昏，楼顶，三个女孩，而她们将因为一个妄想从楼顶跳下去，在跳下去之前三个人起了争执。生气，恐惧的语言，颇有些宗教的配乐，加上这张 CG ，无不在刻画 “疯狂” 这一词语。</p>
<p>再比如游戏开头：</p>
<p><img src="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F%25E5%25B1%258F%25E5%25B9%2595%25E6%2588%25AA%25E5%259B%25BE%25202026-01-02%2520100512.png&amp;size=m" alt=""></p>
<blockquote>
 <p>やっぱり……いい女には、たばこと屋上と……そしてヒラヒラ服だわね……</p>
 <p>果然，好女人要有的是，烟、楼顶……还有轻飘飘的衣服呀……</p>
 <p>——水上由岐</p>
</blockquote>
<p>这次的氛围的立功者主要是 CG ，光是盯着画面就有一种旷远，宏大的感觉，在加上配乐和充满哲学气息的台词，很容易就让人跟着陷入思考。</p>
<p>当然也有小刀（不过是 he ）：</p>
<p><img src="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F%25E5%25B1%258F%25E5%25B9%2595%25E6%2588%25AA%25E5%259B%25BE%25202026-01-01%2520233140-xbaD.png&amp;size=m" alt=""></p>
<p>这里我根本说不出来脑中的情感是什么，太多太复杂了......不过硬要找一个词概括的话，那一定是 “感动” 吧（跟没概括一样</p>
<p>然后再来瞅瞅剧情。其编排方式非常奇妙，游戏共七个章节，最后一个是三个不同的结局，而前面六个章节讲述的是同一个事件，但是以不同的人（或人格）的第一人称叙事，每个视角都有其他视角所没有经历的，独特的事件，但也有与其他视角交汇，冲突的时候。这种方式天然就合适埋下一大堆伏笔。</p>
<p>更具体的，前三章是循序渐进，每一章的伏笔由下一章回收，同时下一章再埋下新的伏笔，让玩家逐渐认识到了整个事件的全貌，并隐隐猜测到多重人格这一核心问题。然后第四章在前三章收集的信息的基础上，几乎完全解释清楚了所有疑点，第五章更像是只对第四章一些因剧情需要而不得不跳过的信息的补充，至此整个事件的全貌都已明了，剩下的第六章是高潮决战，最后的结局补充了一些动机，过去，后日谈和一些哲学问题，终之空Ⅱ更是一个开放的结局，也是给了玩家自己思考的机会。</p>
<p>当然，游戏也不是啥都解释清楚了的，最明显的就是关于音无彩名的事情，她总是在关键时候出现，游戏却从未详细地说明她的事情，这也导致了网上众说纷纭，不过，这种讨论也能体现素晴日的迷人之处吧。</p>
<hr>
<p>再来扯扯哲学话题，这说几个我比较感兴趣的，当然有些游戏里并没有深入讨论，只是我个人想到的。</p>
<ul>
 <li>你，害怕死吗？</li>
</ul>
<p>音无彩名对三个人格都问了这个问题，游戏里卓司生气了，另外悠木和由岐貌似都认为害怕，然后就说了一堆原因，比较有意思的是悠木在说明 “不想死” 这个问题是无意义的时候</p>
<blockquote>
 <p>「但，死亡是绝对无法经历的」</p>
 <p>「死亡随处可见。去附近的墓地里就能看到死人一大堆……但说经历过死亡的人却一个都没有」</p>
 <p>「死亡是不可能有人经历过的……这个是大前提」</p>
 <p>「将这种无法经历的事情，跟完全可以经历的事情同日而语，我觉得这样很反常······」</p>
 <p>「但人却将死亡跟可以经历的各种事情相提并论，这是为什么?」</p>
 <p>「谁晓得呢，实际上我也不太清楚，但也许，正因为反常所以思考死亡才会变得有意义的吧……」</p>
</blockquote>
<p>确实啊，不可能有人经历死亡，毕竟死亡意味着大脑的生理机能停止，而 “经历” 所需要的前提就是大脑的机能正常。悠木认为 “不想xxx” 问题有意义的前提是 “xxx” 是可经历的（也就是除死亡外的任何事），而对于 “死亡” 这种不可经历的事件，思考 “不想死” 就是反常的。</p>
<p>我不大明白这和害不害怕 “死” 有什么关系啊，不过事件要是 “可经历” 的才能明白 “想要” 或是 “不想要” 感觉有点谜，其实很多事情人类并不是经历过才能明白的，像是和经历过的人交流或是利用自己的知识推导结果之类的手段也能够明白啊，而 “死亡” 只不过是失去了 “与经历过的人交流” 这一个手段，仍然有其他许多手段可以知晓 “是否想要死亡” 。</p>
<p>所以感觉 “是否想要死亡” 的意义并不是由是否 “可经历” 决定的，而应该是取决于自己的想法吧，毕竟一个人永远也不能做到绝对客观，所谓客观只不过是被一个一个更大的主观所包含罢了，客观就是一个调和一个群体，一个系统，一个宇宙的每个个体的主观的存在罢了。</p>
<hr>
<ul>
 <li>灵魂轮回论</li>
</ul>
<p>在结局终之空Ⅱ中，音无彩名（没错又是她）在六个假设的基础上提出了第七个假设：你，我，亦或是世界上的每一个人，其实都是一个灵魂在不同的时间，不同的空间不断轮回的结果。</p>
<p>其实这是我第二次看到这个假设，第一次是一个现实版的音无彩名（但是没她那么淡定和电波）——我的初中生物老师说的（她老公高中还教我生物，这什么鬼</p>
<p>下称我的初中生物老师为 yc ，那时我初二的时候吧，我们班换了新生物老师，也就是 yc 。她给人的初印象可绝对太深刻了，新学期第一天上讲台一句也不说，然后看着一个同学就莫名其妙开吼：“看什么看！是没见过男人还是没见过女人” ，当时全班都给镇住了。后来态度貌似对我们班也很差，当然我们班也都挺讨厌她的，直到某次忘记是什么契机了，一次上生物课的时候，她突然态度转变了，说什么是她 “没说过自己有多出名，多厉害，才导致我们班对她的态度特别差” ，还说要转变这一切，当时我们只知道她是生物科长，教生物确实挺厉害，然后接下来的言论真是让人大跌眼镜，她说自己是什么 “觉醒者” ，说什么月球矩阵，昆仑山的神秘事件都是真的，还说自己相信外星人在太阳系之类的阴谋论，然后那节课（包括以后）放了许多一看就是营销号的阴谋论视频。不过那以后 yc 的态度就正常多了，还经常上课给我们讲一些奇奇怪怪的东西（当时真有人信。</p>
<p>总是就是这样一个老师，在某一节生物课上讲到了上面的灵魂轮回论。（这老师还有很多事迹就不说了</p>
<p>不过说回来，个人认为这个问题其实没有什么讨论的必要，因为想太多也没用，对于研究这个问题的手段很少且大多数不怎么可靠。</p>
<hr>
<p>总之，素晴日非常好玩，羽咲非常可爱。</p>
<p>「羽咲非常可爱」</p>
<p>「羽咲非常非常可爱」</p>
<p>「羽咲非常非常非常可爱」</p>
<p>「羽咲非常可爱羽咲非常非常可爱羽咲非常非常非常可爱羽咲非常可爱羽咲非常非常可爱羽咲非常非常非常可爱羽咲非常可爱羽咲非常非常可爱羽咲非常非常非常可爱羽咲非常可爱羽咲非常非常可爱羽咲非常非常非常可爱羽咲非常可爱羽咲非常非常可爱羽咲非常非常非常可爱羽咲非常可爱羽咲非常非常可爱羽咲非常非常可爱羽咲非常非常非常可爱羽咲非常可爱羽咲非常非常可爱羽咲非常非常非常可爱羽咲非常可爱羽咲非常非常可爱羽咲非常可爱羽咲非常非常可爱羽咲非常非常非常可爱羽咲非常可爱羽咲非常非常可爱羽咲非常非常非常可爱羽咲非常可爱羽咲非常非常可爱羽咲非常非常非常可爱羽咲非常可爱羽咲非常可爱羽咲非常非常可爱羽咲非常非常非常可爱羽咲非常可爱羽咲非常非常可爱羽咲非常非常非常可爱羽咲非常可爱羽咲非常非常可爱羽咲非常非常非常可爱羽咲非常可爱」</p>
<p>「羽咲」</p>
<p>    「非常」</p>
<p>        「可爱」</p>]]></description><guid isPermaLink="false">/archives/2026di-yi-gal-su-qing-ri</guid><dc:creator>fogflea</dc:creator><enclosure url="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F4639_kDq7d.jpg&amp;size=m" type="image/jpeg" length="99322"/><category>游戏</category><pubDate>Fri, 2 Jan 2026 05:15:59 GMT</pubDate></item><item><title><![CDATA[乱学数学-母函数在高中数列的应用]]></title><link>https://www.fogflea.com/archives/luan-xue-shu-xue-mu-han-shu-zai-gao-zhong-shu-lie-de-ying-yong</link><description><![CDATA[<img src="https://www.fogflea.com/plugins/feed/assets/telemetry.gif?title=%E4%B9%B1%E5%AD%A6%E6%95%B0%E5%AD%A6-%E6%AF%8D%E5%87%BD%E6%95%B0%E5%9C%A8%E9%AB%98%E4%B8%AD%E6%95%B0%E5%88%97%E7%9A%84%E5%BA%94%E7%94%A8&amp;url=/archives/luan-xue-shu-xue-mu-han-shu-zai-gao-zhong-shu-lie-de-ying-yong" width="1" height="1" alt="" style="opacity:0;">
<p>cover: Pixiv ID 49043684</p>
<hr>
<p>美籍匈牙利数学家 乔治・波利亚 说过</p>
<blockquote>
 <p>‘母函数’这一名称由拉普拉斯命名。然而，欧拉在拉普拉斯之前很久就已使用母函数这一工具，却未赋予其名称…… 母函数是一种类似袋子的工具。我们不必零散地携带许多小物件（这会令人不便），而是将它们全部放入一个袋子中，这样我们只需携带一件物品 —— 这个袋子本身。</p>
</blockquote>
<p>美国数学家 赫伯特・维尔夫 也说过</p>
<blockquote>
 <p>母函数是一列挂衣架，我们将一串数字挂在上面展示。这根单独的挂衣架容纳了序列的所有元素，以及关于它们的全部信息。</p>
</blockquote>
<p>就连邻居家小狗也曾发表重要言论</p>
<blockquote>
 <p>汪汪！</p>
</blockquote>
<p>由此可见母函数这一工具对于数列研究的普适和方便。</p>
<p>虽然母函数非常泛用，但对于研究以等差，等比数列为核心的高中数列来说，这个方法确实有些大炮打蚊子，操作稍显繁琐。所以对于高中数列，我们不一定要去实际使用此方法，而是将它视为理解正常研究方法本质的工具和一个最后手段。</p>
<h2 id="一些概念和基础操作">一些概念和基础操作</h2>
<h3 id="母函数">母函数</h3>
<p>母函数，或是生成函数，其实与其说是函数，更像是借用了 “函数” 的概念，具体来讲，假设有数列 <span class="katex--inline">\{a_n\}</span> ，那么多项式</p>
<p><span class="katex--display"> T(x)=\sum_{i=0}^{n}a_{i+1}x^i </span></p>
<p>可以认为是 <span class="katex--inline">\{a_n\}</span> 的母函数。</p>
<p>（其实我偏向于 0-index，但因为 whk 里好像规定数列都是从一项开始，所以就用 1-index 吧。）</p>
<p>如果是无穷数列，</p>
<p><span class="katex--display"> T(x)=\sum_{i=0}^\infty a_{i+1}x^i </span></p>
<hr>
<h3 id="基础操作">基础操作</h3>
<ol>
 <li><strong>后移 <span class="katex--inline">k</span> 项</strong>（空出来的用 <span class="katex--inline">0</span> 补）：即</li>
</ol>
<p><span class="katex--display"> a_n \leftarrow \left\{ \begin{aligned} &amp;0,\;\;\; n\leq k\\ &amp;a_{n-k},\;\;\; n&gt;k \end{aligned} \right. </span></p>
<p>对应到母函数 <span class="katex--inline">T</span> 就是 <span class="katex--inline">T(x)\leftarrow x^kT(x)</span> 。</p>
<ol start="2">
 <li><strong>前移 <span class="katex--inline">k</span> 项</strong>（多出来的舍掉，有限数列超出范围可用 <span class="katex--inline">0</span> ）：即</li>
</ol>
<p><span class="katex--display"> a_n \leftarrow a_{n+k} </span></p>
<p>对应到母函数 <span class="katex--inline">T</span> 就是 <span class="katex--inline">T(x)\leftarrow x^{-k}(T(x)-\sum_{i=1}^ka_ix^i)</span> 。</p>
<ol start="3">
 <li><strong>求差分</strong>：即</li>
</ol>
<p><span class="katex--display"> a_n\leftarrow a_n-a_{n-1} </span></p>
<p>认为 <span class="katex--inline">a_0=0</span> 。</p>
<p>可以通过 <span class="katex--inline">T(x)\leftarrow (1-x)T(x)</span> 实现。</p>
<ol start="4">
 <li><strong>求前缀和</strong>：即</li>
</ol>
<p><span class="katex--display"> a_n\leftarrow \sum_{i=1}^n a_i </span></p>
<p>注意到差分是前缀和的逆运算，所以通过 <span class="katex--inline">T(x)\leftarrow \frac{1}{1-x}T(x)</span> 实现。</p>
<ol start="5">
 <li><strong>给每项乘上下标</strong>：即</li>
</ol>
<p><span class="katex--display"> a_n\leftarrow na_n </span></p>
<p>发现对多项式求导可以干这件事，即：<span class="katex--inline">T(x)\leftarrow T'(x)</span></p>
<hr>
<h3 id="封闭形式">封闭形式</h3>
<p>考虑一个母函数 <span class="katex--inline">T(x)=\lim_{n\rightarrow \infty}\sum_{i=0}^n x^i</span> ，我们似乎可以对它使用等比数列的求和公式，即 <span class="katex--inline">T(x)=\frac{1-x^n}{1-x}</span> ，因为 <span class="katex--inline">x</span> 可以随便取（这里感觉并不严谨，只是我自己的理解），所以直接认为 <span class="katex--inline">x</span> 是小于 <span class="katex--inline">1</span> 的，那么 <span class="katex--inline">T(x)=\frac{1}{1-x}</span> ，这样给 <span class="katex--inline">T</span> 导出的一个像 <span class="katex--inline">\frac{1}{1-x}</span> 这样简单的<strong>式子</strong>就管它叫 <span class="katex--inline">T(x)</span> 的<strong>封闭形式</strong>。</p>
<p>下面列举一些可能会用到的常用数列的封闭形式：</p>
<ul>
 <li><span class="katex--inline">\{1,1,1,1\dots\} \rightarrow \sum_{i=0}^\infty x^i \rightarrow \frac{1}{1-x}</span></li>
 <li><span class="katex--inline">\{1,q,q^2,q^3\dots\} \rightarrow \sum_{i=0}^\infty q^ix^i \rightarrow \frac{1}{1-qx}</span></li>
 <li><span class="katex--inline">\{0,1,\frac{1}{2},\frac{1}{3}\dots\} \rightarrow \sum_{i=0}^\infty \frac{x^i}{i} \rightarrow \ln\frac{1}{1-x}</span></li>
 <li><span class="katex--inline">\{1,1,\frac{1}{2!},\frac{1}{3!}\dots\} \rightarrow \sum_{i=0}^\infty \frac{x^i}{i!} \rightarrow e^x</span></li>
</ul>
<p>（说实话感觉前两个就挺够用</p>
<h2 id="应用">应用</h2>
<p>目前只想到了能用来求通项，如有更多用途欢迎补充。</p>
<h3 id="求通项">求通项</h3>
<ul>
 <li><strong>例 1</strong>
  <br>
  <span class="katex--inline">a_1=4,a_{n+1}=3a_n+4</span> ，求 <span class="katex--inline">a_n</span> 。</li>
</ul>
<p>算是入门经典题了。</p>
<p>先讲一个自己瞎搞出来的与母函数无关的做法：</p>
<p>先考虑另一个问题：<span class="katex--inline">a_1=2,a_{n+1}=3a_n+2</span></p>
<p>将 <span class="katex--inline">a_n</span> 放到 <span class="katex--inline">3</span> 进制下考虑，不难发现：</p>
<p><span class="katex--display"> \begin{aligned} &amp;a_1=(2)_3\\ &amp;a_2=(22)_3\\ &amp;a_3=(222)_3\\ &amp;\dots \end{aligned} </span></p>
<p>可直接得出 <span class="katex--inline">a_n=3^n-1</span></p>
<p>那么这个问题是 <span class="katex--inline">4</span> 的版本，即</p>
<p><span class="katex--display"> \begin{aligned} &amp;a_1=(4)_3\\ &amp;a_2=(44)_3\\ &amp;a_3=(444)_3\\ &amp;\dots \end{aligned} </span></p>
<p>（虽然 <span class="katex--inline">4&gt;3</span> ，但因为是求和所以无所谓。</p>
<p>怎么干？</p>
<p>直接 <span class="katex--inline">\frac{4}{2}(3^n-1)</span> 就好啦。</p>
<p>那么母函数怎么做呢？</p>
<p>设 <span class="katex--inline">{a_n}</span> 的母函数是 <span class="katex--inline">T(x)</span> ，对递推式进行变形：</p>
<p><span class="katex--display"> \begin{aligned} a_{n+1}&amp;=3a_n+4\\ a_{n+1}-3a_n-4&amp;=0\\ \sum_{i=0}^\infty (a_{n+2}-3a_{n+1}-4)x^i&amp;=0\\ \sum_{i=0}^\infty a_{n+2}x^i-3\sum_{i=0}^\infty a_{n+1}x^i-4\sum_{i=0}^\infty x^i&amp;=0\\ \frac{(T(x)-a_1)}{x}-3T(x)-\frac{4}{1-x}&amp;=0\\ \end{aligned} </span></p>
<p>最后得到：</p>
<p><span class="katex--display"> T(x)=\frac{4}{(1-3x)(1-x)} </span></p>
<p>到这该怎么往下走呢？</p>
<p>我们发现，如果分母上是 <span class="katex--inline">(1-3x)</span> 或 <span class="katex--inline">(1-x)</span> ，其封闭形式我们是知道的，所以我们可以直接裂项：</p>
<p><span class="katex--display"> \frac{4}{(1-3x)(1-x)}=\frac{6}{1-3x}+\frac{-2}{1-x} </span></p>
<p>（如果分子无法瞪出可以待定系数解方程组。</p>
<p>要求的通项 <span class="katex--inline">a_n</span> 就是 <span class="katex--inline">T(x)</span> 的 <span class="katex--inline">x^{n-1}</span> 的系数，也就是 <span class="katex--inline">\frac{6}{1-3x}</span> 的 <span class="katex--inline">x^{n-1}</span> 的系数和 <span class="katex--inline">\frac{-2}{1-x}</span> 的 <span class="katex--inline">x^{n-1}</span> 的系数之和，可以从封闭形式直接推回数列对应项相加，就是 <span class="katex--inline">6\cdot 3^{n-1}-2\cdot 1^{n-1}=2(3^n-1)</span> 。</p>
<p><strong>提炼一下方法：根据递推式解出母函数式子 <span class="katex--inline">\rightarrow</span> 将母函数变形为可以用已知数列的封闭形式搞出来的形式 <span class="katex--inline">\rightarrow</span> 还原回数列，求 <span class="katex--inline">x^{n-1}</span> 的系数。</strong></p>
<hr>
<ul>
 <li><strong>例 2</strong>
  <br>
  求斐波那契数列的通项公式，<span class="katex--inline">f_{n+2}=f_{n+1}+f_{n},f_1=f_2=1</span> 。</li>
</ul>
<p>有了 1. 的经验，同样尝试表达 <span class="katex--inline">f</span> 的母函数 <span class="katex--inline">T(x)</span> 。</p>
<p><span class="katex--display"> \begin{aligned} f_{n+2}-f_{n+1}-f_n&amp;=0\\ \sum_{i=0}^\infty f_{i+3} x^i-\sum_{i=0}^\infty f_{i+2} x^i-\sum_{i=0}^\infty f_{i+1} x^i&amp;=0\\ \frac{T(x)-f_1-xf_2}{x^2}-\frac{T(x)-f_1}{x}-T(x)&amp;=0\\ T(x)&amp;=\frac{1}{1-x-x^2} \end{aligned} </span></p>
<p>然后是变形，记 <span class="katex--inline">p,q</span> 为方程 <span class="katex--inline">1-x-x^2=0</span> 的两根。</p>
<p><span class="katex--display"> \begin{aligned} T(x)&amp;=\frac{1}{1-x-x^2}\\ &amp;=\frac{1}{(p-x)(q-x)}\\ &amp;=\frac{1}{q-p}\cdot \frac{1}{p-x}+\frac{1}{p-q}\cdot \frac{1}{q-x}\\ &amp;=\frac{1}{q-p}\cdot \frac{p^{-1}}{1-p^{-1}x}+\frac{1}{p-q}\cdot \frac{q^{-1}}{1-q^{-1}x} \end{aligned} </span></p>
<p>最后一步转化回来，就是：</p>
<p><span class="katex--display"> \begin{aligned} f_n&amp;=\frac{1}{p^n(q-p)}+\frac{1}{q^n(p-q)} \end{aligned} </span></p>
<hr>
<ul>
 <li><strong>例3</strong>
  <br>
  有一数列 <span class="katex--inline">a_n=n2^n</span> ，求其前缀和 <span class="katex--inline">S_n</span> 的通项</li>
</ul>
<p>（我从我们班作业里挑出来的一道题，官方解法是 <span class="katex--inline">2S_n-S_n</span> 。</p>
<p>设 <span class="katex--inline">\{a_n\}</span> 的母函数为 <span class="katex--inline">A</span>， <span class="katex--inline">\{S_n\}</span> 的母函数为 <span class="katex--inline">T</span> 。</p>
<p>如果我们知道 <span class="katex--inline">a_n</span> ，那么 <span class="katex--inline">S_n</span> 的封闭形式就可以用 <span class="katex--inline">T(x)=\frac{1}{1-x}A(x)</span> 来表达，所以先看看 <span class="katex--inline">A</span> 的封闭形式。</p>
<p>在操作那一栏讲了，乘上下标可以用求导干，所以</p>
<p><span class="katex--display"> \begin{aligned} A(x)&amp;=\sum_{i=0}^\infty (i+1)2^{i+1}x^{i}\\ &amp;=\big[\sum_{i=0}^\infty 2^{i+1}x^{i+1}\big]'\\ &amp;=\big(\frac{1}{1-2x}\big)'\\ &amp;=\frac{2}{(1-2x)^2} \end{aligned} </span></p>
<p>那么 <span class="katex--inline">T(x)=\frac{2}{(1-2x)^2(1-x)}</span></p>
<p>分母变为 <span class="katex--inline">3</span> 次也没关系，裂项两次就行。得到 <span class="katex--inline">T(x)=\frac{1}{1-x}+\frac{-1}{1-2x}+\frac{4}{(1-2x)^2}</span></p>
<p>前两项正常干就行，第三项就是 <span class="katex--inline">2A(x)</span> 。</p>
<p>可以得到： <span class="katex--inline">S_n=2-4\cdot 2^{n-1}+4\cdot n2^{n-1}=(n-1)2^{n+1}+2</span> 。</p>
<p>从这里也能看出，如果知道一个数列的封闭形式，那么它的任意阶前缀和或差分都能被表达。</p>
<h2 id="后记">后记</h2>
<p>其实生成函数还能用于许多组合计数问题，但感觉不在高考范围内所以没写。</p>
<p>乘上下标那个最开始我怎么想也想不出来，最后花了一节数学课才注意到它和导数的关系。</p>
<p>其实生成函数在我初中的博客亦有记载，只不过那时理解并不深，写的有很多错误，就弃了。</p>]]></description><guid isPermaLink="false">/archives/luan-xue-shu-xue-mu-han-shu-zai-gao-zhong-shu-lie-de-ying-yong</guid><dc:creator>fogflea</dc:creator><enclosure url="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F49043684_p0.jpg&amp;size=m" type="image/jpeg" length="83333"/><category>数学</category><pubDate>Fri, 26 Dec 2025 11:49:48 GMT</pubDate></item><item><title><![CDATA[为2025献上年度总结！]]></title><link>https://www.fogflea.com/archives/wei-2025xian-shang-nian-du-zong-jie</link><description><![CDATA[<img src="https://www.fogflea.com/plugins/feed/assets/telemetry.gif?title=%E4%B8%BA2025%E7%8C%AE%E4%B8%8A%E5%B9%B4%E5%BA%A6%E6%80%BB%E7%BB%93%EF%BC%81&amp;url=/archives/wei-2025xian-shang-nian-du-zong-jie" width="1" height="1" alt="" style="opacity:0;">
<p>这一年是快的，因为专注让我忘却时间。</p>
<p>这一年是慢的，因为失去让我思绪长流。</p>
<h2 id="学业">学业</h2>
<h3 id="竞赛">竞赛</h3>
<p>首先是 OI ，今年真的是有我的许多第一次：第一次去外省认真集训，第一次看见出名的各种大佬本人，第一次打 CF （老早注册的号终于有用了），第一次交到真正致力于 OI 朋友...</p>
<p>首先今年暑假前因为 noip2024 时还未开化考的不咋的，当时在考场看到我旁边一个高二考前深吸一口气，对着桌子拜了三拜。当时触动很深，因为在他的身上看到了我的影子，仿佛能预见明年坐在同样位置的我，心里也是同样因为自己的弱小祈祷着。于是那时我就下定决心，未来的一年将精力全部投到 OI 上。</p>
<p>在暑假之前，通过对着小蓝书使劲意淫，终于把那本书学完了，这才算半只脚踏入了 noip 水平。然后暑假就开始去山东集训，这时我才真真正正懂了 OI 里的许多门道，包括如何学习，如何思考，而这些东西并不只是局限于 OI 。</p>
<p>回来后差不多要上学了，在剩下短暂的暑假时间内稍稍放松了一下。</p>
<p>开学后，我真正成为了刷题狂魔，whk 的水平被我压制到最低，几乎所有空闲时间的我都在想题：吃饭，睡觉，数学课。因为我们学校竞赛根本处于未开化状态（因为 whk 应该是全省最强），每天的训练时间只有极少的 1.5h （这还是满打满算，因为那时还要吃饭什么的），所以我一下课就立马去食堂，然后尽量快地去机房。为了延长日训练时间，中午吃完饭我也会一个人来到机房。</p>
<p>然后有了这样的<a href="https://www.fogflea.com/archives/wei-ming-ming-wen-zhang">结局</a>。</p>
<p>出分那天是我的生日，有很多人给我送了祝福，但祝福在 noip2025 前不管用呢。（虽然我是挺高兴啦</p>
<p>那天晚上，我久违地前往操场散步，恰好遇上了我单方面认为最好的朋友，还记得当时说自己开始怀疑 “努力” 的用处了，结果他说 “努力” 可以不让自己闲下来，总之就是 “先努力着，用处可以慢慢找” 之类的缓兵之计，还挺有道理。</p>
<p>不过现在想想这一年的努力也不会因为结果而褪色，毕竟那些思考方式，对知识的分类法都是可拓展到 whk 学习的，宝贵的东西。</p>
<p>为什么在一个 whk 这么强的学校要选择竞赛？
 <br>
 因为竞赛可以教会你思考，可以让你认识有深度的灵魂。</p>
<h3 id="未来">未来</h3>
<p>肯定是 whk 为主啦，因为 OI 的缘故期中考试报废了，期末我得好好搞了。还会参加明年的 noip ，还一些其他比赛什么的，不过对我来说都是支线了。</p>
<p>可能还会玩玩 MO 吧，这个也是支线。</p>
<h2 id="娱乐">娱乐</h2>
<h3 id="游戏">游戏</h3>
<p>请永远记住 2025.9.4 ，那一天，跳票 6 年的 《空洞骑士：丝之歌》发售了。</p>
<p>呀，从学校回来听到这个消息真的是特兴奋，还记得初二得时候在朋友的推荐下去玩了空洞骑士，当时真觉得拼刀拼刀拼刀的真的好爽呀！结果发现还有一个续作，然后就 “幸运” 了两三年，终于也是在活着的时候玩到啦（b 站上有人没能，默哀</p>
<p>感觉丝之歌的剧情比前作王道了许多，不过优秀的地方没有变化，虽然刚上线因为中文翻译和难度的原因惨遭吐槽，但是官方的态度十分诚恳，积极改进，感觉这点瑕疵没什么。</p>
<p>这周回来还看到 16 号发了一个 DLC 的预告，2026 就能玩上了，还是全员 free ，我真是太幸运了。</p>
<p>gal 的话又开了几部，目前正在鉴赏传说中的电波神作素晴日（刚到卓司视角），然后上个月推完了近月少女的露娜线，发现自己竟然最喜欢朝日？还开了一点《星空列车与白的旅行》，这时什么神秘生死观游戏吗（不过全是萝莉好评</p>
<p>4，5 月的时候玩了 万花镜 5（前面的有些没玩） 和 9-nine 全套。8 月在山东飞机晚到 2 点，玩完了色鸟鸟。</p>
<p>
 <del>感觉自己现在对 h game 没有很大的兴趣了，是因为看太多了吗（不过还是蹲一手 メランコリアンナ 的第二部</del>
</p>
<p>最近还发现了<a href="https://bgm.tv/subject/423457">奇跡論のルフトゥ</a>的女主十分戳我，玩了一下 demo 发现确实不错（虽然使用了大量 AI 有点难受），但不知道 2026 能不能等到，蹲一手。</p>
<p>2025.12.20 <a href="https://www.fogflea.com/archives/yu-shi-wei-yi-de-shou-you-ye-chi-ta-yuan-qu-liao">我失去了对 BA 账号的访问权</a>，于是我再也不玩手游了。</p>
<h3 id="动画">动画</h3>
<p>今年 8 月份的时候注册了 bangumi 。（好像初中开始就用了，只不过当时只是当成一个 wiki ，没有注册</p>
<p>然后标了一下各种番，到现在看过 134 部，还有一些也想不起来了，不过既然都想不起来了那也没必要标了。</p>
<p>今年没怎么追新番，其实也没怎么看番，主要就是看完了 GOSICK ，败犬，素晴二，86，天才王子的赤字国家振兴术，看了一半丢了有：王冠，会长是女仆大人，我们真的学不来，还有一些搁置的：青猪圣诞服，物理魔法使马修，魔女与使魔，Re0 season 3云云。</p>
<p>明年估计也不会怎么看新番（不过芙莉莲二还是得看），主要会补一些被捧上神坛的作品，比如说 fz，巨人（是的，你没听错，我现在没看过巨人），钢炼（刚看完素晴二，下一个可能就是它），石头门云云。</p>
<h3 id="小说">小说</h3>
<p>这个今年真是不咋看了，主要是上半年，先看完了《天才王子的赤字国家振兴术》，然后感觉政治智斗还不错就去看小说，然后一下看完了 12 部，然后发现作者已经断更三年了！</p>
<p>然后是 86 的动画看完了也去看小说，因为主要是想看辛和雷娜甜甜的剧情，所以看到第 9 卷 18% 就看不动了。</p>
<p>随后时间来到 AFO 后，玩了奇跡論のルフトゥ的 demo 后对逢缘奇演这个人产生了极大兴趣，于是在 ci-en 上关注了 ta ，随发现 ta 还在写一个终末委员会系列，于是这周把前四本看完了，第五本目前只找到了机翻，蹲。写的挺震撼的（可能是因为我第一次看这种带点电波的），改天可能会写篇文章叨叨。</p>
<h3 id="音乐">音乐</h3>
<p>25 年前主要听 English 和一些出名的日语歌，今年偶然觉醒了术曲，目前主要听这个，比较喜欢爹扣和老匹的歌。</p>
<h2 id="其他杂碎">其他杂碎</h2>
<ul>
 <li>
  <p>4月的时候为了学 OI 上网课方便一点买了三星的拓展屏和 xppen 的数位板，拓展屏现在用来看番嘎嘎爽。</p>
 </li>
 <li>
  <p>4.30 从家里翻出了初中时我们宿舍集体制作的卡牌游戏（交由我保管），笑意在嘴角展开。
   <br>
   <img src="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2FIMG_20251221_114117.jpg&amp;size=m" alt="IMG_20251221_114117.jpg"></p>
 </li>
 <li>
  <p>blog 翻新了，更新频率未来也会变高，这个站不再只是摆设了。</p>
 </li>
</ul>
<h2 id="最后">最后</h2>
<p>2025 应该会成为我变化最大的一年吧，在这一年，我真正意识到了 “自己的思考” 是怎么一回事，开始对一些自己独立的见解有了自信。</p>
<p>总之，2026，一起加油吧。</p>]]></description><guid isPermaLink="false">/archives/wei-2025xian-shang-nian-du-zong-jie</guid><dc:creator>fogflea</dc:creator><enclosure url="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Ffn%2520-%2520big.png&amp;size=m" type="image/jpeg" length="2969"/><category>年度总结</category><pubDate>Sun, 21 Dec 2025 04:00:03 GMT</pubDate></item><item><title><![CDATA[于是，唯一的手游也离他远去了]]></title><link>https://www.fogflea.com/archives/yu-shi-wei-yi-de-shou-you-ye-chi-ta-yuan-qu-liao</link><description><![CDATA[<img src="https://www.fogflea.com/plugins/feed/assets/telemetry.gif?title=%E4%BA%8E%E6%98%AF%EF%BC%8C%E5%94%AF%E4%B8%80%E7%9A%84%E6%89%8B%E6%B8%B8%E4%B9%9F%E7%A6%BB%E4%BB%96%E8%BF%9C%E5%8E%BB%E4%BA%86&amp;url=/archives/yu-shi-wei-yi-de-shou-you-ye-chi-ta-yuan-qu-liao" width="1" height="1" alt="" style="opacity:0;">
<p>今天打开手机，突然想起了 BA 。</p>
<p>由于在今年 11 月份前都专注于 OI ，BA 就没怎么碰过了，只是在 fes 的时候上线把强力限定搞出来然后就下线了。最近好像又要 fes 了，恰好刚退役且期中考试考完，稍有些空闲时间了，那就上线玩玩吧。</p>
<blockquote>
 <p>喔，这次的好像不错啊，不过还没到时间。</p>
 <p>欸，怎么做个网页活动老是登不进去？（国际服）
  <br>
  欸，怎么还要换 nexon 账号？
  <br>
  算了不管了不做了，直接去 app 上线吧</p>
</blockquote>
<p>肝肝肝</p>
<blockquote>
 <p>活动剧情和打架都过完了啊，搞一下小游戏吧。</p>
</blockquote>
<p>玩到一半。</p>
<blockquote>
 <p>呜呜，好饿，吃饭！</p>
</blockquote>
<p>吃完了</p>
<blockquote>
 <p>看会博客吧。</p>
</blockquote>
<p>看看看。</p>
<blockquote>
 <p>欸，手机后台咋这么多东西，删删删。
  <br>
  艹，我怎么把 BA 后台删了。
  <br>
  算了，重新开吧。
  <br>
  嗯？“无法获取用户信息？”，叉叉，欸，闪退？</p>
</blockquote>
<p>再次打开</p>
<blockquote>
 <p>要重新登陆？</p>
</blockquote>
<p>选择了我之前的 fb 账号。</p>
<blockquote>
 <p>嗯，怎么要初始化？怎么要设置名称？怎么要重新过初见剧情？
  <br>
  怎么我号没了？</p>
</blockquote>
<p>从小到大，我只玩过 BA 这一款手游，于是，这唯一的手游也离我远去了。</p>
<p>不过不知道为啥，我并没感觉多难过，尽管那是个 88 级，凑齐了所有 fes ，有一堆彩，目前还有两百抽没用的号，感觉这个不能光用我是零氪党来解释，毕竟玩了有两三年了，时间之长带来的不舍也不是能挥挥手就算了的。</p>
<p>为什么会这样呢？抱着这个无聊的问题，我回顾了一下我和 BA 走过的整个历程。</p>
<p>好像是初二还是初三的寒假，不知道在哪看到了宫子的立绘：</p>
<p><img src="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fthumbnails%2F2025%2Fw400%2F2025-12-20215931.png&amp;size=m" alt="屏幕截图 2025-12-20 215931.png"></p>
<p>当时一边脑子里想着 “真好啊” ，一边打开了 google lens ，搜索这究竟是何方神圣。于是就检索到了 BA 。</p>
<p>但当时我本来就不大喜欢这种手游，但最后架不住下三路思考还是去尝试了，显然我没有立刻得到宫子（当然现在有，哦要用过去式），毕竟我不是很了解这种抽卡游戏，但当时下了挺久了姑且就玩上了。</p>
<p>刚开始玩得还挺起劲，而且在新手期我貌似运气还贼好，半年后去看了一些攻略才发现我几乎已经把各种强力的 fes 和 限定搞得挺齐了（比如水白，水星野，水花子，若藻，亚子，小春云云），在往后也逐渐补上了 mika ，礼奈，黑子，临战星野（其实就是逢 fes 必齐啦）。</p>
<p>当然也有冷淡期，比如说中考前和今年 noip 前都没怎么玩，基本就是上线-清体-下线。</p>
<p>到这里我想我能回答为什么了：</p>
<ul>
 <li>第一，动机比较单纯（好像也不算什么理由？</li>
 <li>第二，玩的太顺了，没什么特别肝的时候。</li>
 <li>第三，经历了退役后，丢号的拷打并不算痛苦。</li>
</ul>
<p>
 <del>太棒了，我浪费了五分钟！</del>
</p>
<p>也许人就是要不断的失去才能成长。
 <br>
 。
 <br>
 。
 <br>
 。
 <br>
 。
 <br>
 。
 <br>
 。
 <br>
 。
 <br>
 。
 <br>
 <del>果然现在的我比起失去更想拥有。</del></p>
<p>总之本文姑且算是记录了我的一个转变吧（也是对过去玩 BA 的我的备份），毕竟我以后估计都不会碰手游了。</p>
<p>好像突然发现写博客的一个理由了，像这样现在看来意义不大的事情还不知道有多少呢——等到哪天意识到了它的珍贵，如果当时没有选择记录下来而是留给未来的自己绞尽脑汁也想不起来的话</p>
<p>果然还是会有一种怅然若失的心情吧。</p>
<p>那么，ade，Blue Archive!</p>]]></description><guid isPermaLink="false">/archives/yu-shi-wei-yi-de-shou-you-ye-chi-ta-yuan-qu-liao</guid><dc:creator>fogflea</dc:creator><enclosure url="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fcnm%25E9%2587%2591%25E6%25A1%2591_ba-style%40nulla.top.png&amp;size=m" type="image/jpeg" length="25841"/><category>游戏</category><pubDate>Sat, 20 Dec 2025 14:46:36 GMT</pubDate></item><item><title><![CDATA[乱学数学-对圆锥曲线的一些更为本质的认识]]></title><link>https://www.fogflea.com/archives/luan-xue-shu-xue</link><description><![CDATA[<img src="https://www.fogflea.com/plugins/feed/assets/telemetry.gif?title=%E4%B9%B1%E5%AD%A6%E6%95%B0%E5%AD%A6-%E5%AF%B9%E5%9C%86%E9%94%A5%E6%9B%B2%E7%BA%BF%E7%9A%84%E4%B8%80%E4%BA%9B%E6%9B%B4%E4%B8%BA%E6%9C%AC%E8%B4%A8%E7%9A%84%E8%AE%A4%E8%AF%86&amp;url=/archives/luan-xue-shu-xue" width="1" height="1" alt="" style="opacity:0;">
<p>cover: Pixiv ID 100807887</p>
<hr>
<p>AFO 了，也该 whk 了。</p>
<p>然后发现自己圆锥曲线那一块差的要命，主要问题是不像其它知识有一些较超前的，更为本质的认识，所以去搜索了相关资讯后，总算用一些射影几何的内容搞懂了高考圆锥曲线的一些诸如点差法，齐次化的基本方法的本质是啥。</p>
<p>由于 OI 写博客的习惯可拓展到各类学习，于是有了这篇文章。</p>
<h2 id="射影空间的一些基础概念">射影空间的一些基础概念</h2>
<p><strong>点</strong>：给原本在欧氏平面下的点坐标 <span class="katex--inline">(\frac{x}{z},\frac{y}{z})</span> 添加一维 <span class="katex--inline">z</span> ，即 <span class="katex--inline">(x:y:z)</span> ，显然，所有 <span class="katex--inline">x:y:z</span> 相等的坐标表示同一个点，并且这种表示方式可以便利的表示无穷远点，即 <span class="katex--inline">z=0</span> 时。这种坐标被叫做点的齐次坐标。</p>
<p><strong>线</strong>：在欧氏平面下一条线的一般方程是 <span class="katex--inline">Ax+By=1</span> ， <span class="katex--inline">A,B</span> 不全为 <span class="katex--inline">0</span> 。那么点线都放到齐次坐标下，就变成了 <span class="katex--inline">Ax+By+Cz=0</span> ，线可以类似地用 <span class="katex--inline">(x:y:z)</span> 的坐标来表示，那么无穷远直线就是 <span class="katex--inline">z=0</span> 的时候的直线。</p>
<p>一些无关的乱想：</p>
<p>从这里似乎可以看出点和线有一些对偶的性质，想起来初中看过的一本书《数学是什么》里面有提到射影几何中一些共点共线的定理总是成双出现的，现在好像有些理解了。另外感觉这个好像还能拓展到更高维的版本？</p>
<p><strong>交比</strong>：有四个共线的点 <span class="katex--inline">A,B,C,D</span> ，那么称</p>
<p><span class="katex--display"> \frac{\; \frac{AC}{AD} \;}{ \frac{BC}{BD} } </span></p>
<p>是点列 <span class="katex--inline">(AB,CD)</span> 的交比。交比有射影变换下的不变性，也就是说若<span class="katex--inline">AA_1,BB_1,CC_1,DD_1</span> 交于一点，那么 <span class="katex--inline">(AB,CD)</span> 的交比和 <span class="katex--inline">(A_1B_1,C_1D_1)</span> 的交比相等。而由它的不变性，也能推出 <span class="katex--inline">AA_1,BB_1,CC_1,DD_1</span> 交于一点（射影点）。（若对应点重合则认为方向任意）</p>
<p><strong>调和点列</strong>：最开始是初中在小蓝本里看到的，说是有四个共线的点 <span class="katex--inline">A,B,C,D</span> ，若满足</p>
<p><span class="katex--display"> \frac{\; \frac{AC}{AD} \;}{ \frac{BC}{BD} }=-1 </span></p>
<p>则称 <span class="katex--inline">C,D</span> 调和分割 <span class="katex--inline">A,B</span> ，<span class="katex--inline">(AB,CD)</span> 就是调和点列，注意上式均为有向线段。</p>
<h2 id="平移齐次化的本质">平移齐次化的本质</h2>
<p>经常能在高考题中遇到这样的问题：有一个椭圆（其他二次曲线差不多） <span class="katex--inline">T:\frac{x^2}{a^2}+\frac{y^2}{b^2}=1,(a&gt;b&gt;0)</span> ，设 <span class="katex--inline">A</span> 是一个定点 <span class="katex--inline">(x_A,y_A)</span> ，然后椭圆上有两个点 <span class="katex--inline">B,C</span> ，然后给了个 <span class="katex--inline">k_{AB},k_{AC}</span> 的和积关系云云，最后要求证明直线 <span class="katex--inline">BC</span> 过定点。</p>
<p>先来看看正常做法： 设 <span class="katex--inline">B(x_1,y_1),C(x_2,y_2),BC:x=ky+t</span> ，联立 <span class="katex--inline">BC</span> 和 <span class="katex--inline">T</span> 得到一个方程，就是消掉 <span class="katex--inline">x</span> 或 <span class="katex--inline">y</span> 其中之一，然后韦达搞出 <span class="katex--inline">x_{1/2},y_{1/2}</span> 的各种和积式的关于 <span class="katex--inline">k,t</span> 的表达式，然后各种组合弄出题目给出的和积关系求出 <span class="katex--inline">k,t</span> 关系，最后算出 <span class="katex--inline">BC</span> 的定点，证毕。然后就会发现在韦达后就算不动了，因为搞出 <span class="katex--inline">x_{1/2},y_{1/2}</span> 的各种和积式形状真是千奇百怪的分数，然后带入题目的和积关系得到的式子又臭又长，虽然最终化简后一般是简单的。</p>
<p>某天，我们的数学老师传授了一个神奇的方法：平移齐次化，具体是这样的：</p>
<p>将原点平移至 <span class="katex--inline">(x_0,y_0)</span> ，也就是将 <span class="katex--inline">A</span> 作为新系原点，那么 <span class="katex--inline">T</span> 变为 <span class="katex--inline">\frac{(x+x_0)^2}{a^2}+\frac{(y+y_0)^2}{b^2}=1</span> ，将它化开，可以得到 <span class="katex--inline">Ox^2+Py^2+Qx+Ry+S=0</span> 的一个二元二次曲线的形式，然后再新系下设 <span class="katex--inline">BC:mx+ny=1</span> ，乘到 <span class="katex--inline">T</span> 的一次项中，就是：</p>
<p><span class="katex--display"> Ox^2+Py^2+Qx(mx+ny)+Ry(mx+ny)+S=0 </span></p>
<p>令 <span class="katex--inline">k=\frac{y}{x}</span> ，两边同时除以 <span class="katex--inline">x^2</span> ：</p>
<p><span class="katex--display"> (P+Rn)k^2+(Qn+Rm)k+S+(O+Qm)=0 </span></p>
<p>然后就可以用韦达轻轻松松的搞出题目给的斜率条件，得到 <span class="katex--inline">m,n</span> 的关系，把定点搞出来，再平移回原系即可。</p>
<p>超级懵逼？！谁想出来的这个方法？！这特么也太人类智慧了吧？！</p>
<p>仔细想想，刚刚其实只干了两件事，一：平移，二： 做 “1” 的代换齐次化。</p>
<p>然后第一条其实是好理解的，在平常情况下使用椭圆中心做原点的原因有二</p>
<ul>
 <li>解析式好看，简洁</li>
 <li>有可以利用的中心/轴对称性（好像概括了第一条？</li>
</ul>
<p>而在这个题目中根本用不到对称性，而且在正常坐标系下还会是 <span class="katex--inline">k_{AB}</span> 和 <span class="katex--inline">k_{AC}</span> 的分子分母带上不必要的常数，这就加重了化简的负担，所以就会想到平移（其实也能看成换元）从而消去常数。</p>
<p>至于第二点，实际上在了解了一点射影几何的知识后就会明白，把 <span class="katex--inline">mx+ny=1</span> 做 “1” 的代换这件事本质就是消去了 <span class="katex--inline">z</span> 这个参数：考虑齐次坐标下的 <span class="katex--inline">T</span> 和 <span class="katex--inline">BC</span> 的解析式：
 <br>
 <span class="katex--display"> \begin{aligned} T&amp;:\frac{x^2}{a^2}+\frac{y^2}{b^2}=z^2\\ BC&amp;:mx+ny+lz=0 \end{aligned} </span></p>
<p>那么联立 <span class="katex--inline">T,BC</span> 就是 <span class="katex--inline">\frac{x^2}{a^2}+\frac{y^2}{b^2}=(\frac{mx+ny}{l})^2</span></p>
<p>只不过平常情况下我们可以令 <span class="katex--inline">z=1，l=-1</span> 。</p>
<p>这样看来这个方法显得并不那么人类智慧了。</p>
<h2 id="极点和极线">极点和极线</h2>
<p>这就对应着另一类问题，仍以椭圆举例：</p>
<p>有一个椭圆 <span class="katex--inline">T:\frac{x^2}{a^2}+\frac{y^2}{b^2}=1,(a&gt;b&gt;0)</span> ， <span class="katex--inline">E,F</span> 为其左右端点，有一直线 <span class="katex--inline">AB</span>， <span class="katex--inline">AE\;\cap\;BF=G</span>，然后已知 <span class="katex--inline">AB</span> 过定点求证 <span class="katex--inline">G</span> 在定直线上，或者反过来已知 <span class="katex--inline">G</span> 在定直线上证明 <span class="katex--inline">AB</span> 过定点。</p>
<p><img src="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fyzqx1.PNG&amp;size=m" alt="yzqx1.PNG"></p>
<p>这里就简单介绍一下一些极点极线的定义和结论，我认为对高考来讲只需感性理解即可。</p>
<p><strong>极点和极线</strong>：假设有一点 <span class="katex--inline">O</span> ，有一条过 <span class="katex--inline">O</span> 的直线 <span class="katex--inline">l</span> ，交椭圆于 <span class="katex--inline">L,N</span> ，有一点 <span class="katex--inline">M</span> 满足<span class="katex--inline">L,N</span> 调和分割 <span class="katex--inline">O,M</span> ，那么随着 <span class="katex--inline">l</span> 的旋转，由神秘推导 <span class="katex--inline">M</span> 的轨迹会形成一条直线 <span class="katex--inline">s</span> ，那么 <span class="katex--inline">s</span> 就是 <span class="katex--inline">O</span> 对该椭圆的极线， <span class="katex--inline">O</span> 就是 <span class="katex--inline">s</span> 对该椭圆的极点。</p>
<p><img src="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fyzqx2.PNG&amp;size=m" alt="yzqx2.PNG"></p>
<p><strong>配极原则</strong>：由神秘证明，若 <span class="katex--inline">A</span> 在 <span class="katex--inline">B</span> 的极线上，那么 <span class="katex--inline">B</span> 也在 <span class="katex--inline">A</span> 的极线上。上图的 <span class="katex--inline">O</span> 和 <span class="katex--inline">M</span> 就是一个例子。</p>
<p>有了这些结论，就可以回答这个问题了，先添加几条线：</p>
<p><img src="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fyzqx5.PNG&amp;size=m" alt="yzqx5.PNG"></p>
<p>（这个图重画了一下，可能有些字母不大一样）</p>
<p>作 <span class="katex--inline">I,H</span> 使得 <span class="katex--inline">(HF,AE),(IF,DB)</span> 是调和点列，由交比的不变性可知 <span class="katex--inline">G</span> 是由 <span class="katex--inline">(HF,AE)</span> 变换到 <span class="katex--inline">(IF,DB)</span> 的射影点，所以 <span class="katex--inline">IH</span> 过 <span class="katex--inline">G</span> ，且 <span class="katex--inline">IH</span> 就是 <span class="katex--inline">F</span> 的极线。</p>
<p>诶，那这就可以用配极原则了，所以 <span class="katex--inline">F</span> 也在 <span class="katex--inline">G</span> 的极线上。如果 <span class="katex--inline">G</span> 为定点，那么其极线也为定直线，也就证明了 <span class="katex--inline">F</span> 在定线上了，反过来也是一样。</p>
<p>不过这个证明高考不能用，但是心里明白后就可以用交比为 <span class="katex--inline">-1</span> 先光速求出定点/定直线，然后联立韦达写一堆不化简的式子扔给改卷，最后<strong>注意到</strong>求出的定点/定直线满足要求，岂不美哉？</p>
<p>如果你的要求更进一步，想要了解一些结论的推导，推荐去看B站up泰勒猫爱丽丝的<a href="https://space.bilibili.com/11008987/lists/2131978?type=season">“高考不能用”合集</a>的圆锥曲线系列。</p>]]></description><guid isPermaLink="false">/archives/luan-xue-shu-xue</guid><dc:creator>fogflea</dc:creator><enclosure url="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F100807887_p0_master1200.jpg&amp;size=m" type="image/jpeg" length="74413"/><category>数学</category><pubDate>Fri, 19 Dec 2025 13:18:17 GMT</pubDate></item><item><title><![CDATA[乱学数学-FME]]></title><link>https://www.fogflea.com/archives/luan-xue-shu-xue-fme</link><description><![CDATA[<img src="https://www.fogflea.com/plugins/feed/assets/telemetry.gif?title=%E4%B9%B1%E5%AD%A6%E6%95%B0%E5%AD%A6-FME&amp;url=/archives/luan-xue-shu-xue-fme" width="1" height="1" alt="" style="opacity:0;">
<p>cover: Pixiv ID 89217849</p>
<hr>
<p>起因是某道九省联考题：</p>
<p><span class="katex--display"> 0&lt;a&lt;b&lt;c&lt;1,满足a+b \leq 1 或者 b\geq 2a,求(\max\{b-a,c-b,1-c\})_{\min} </span></p>
<p><s>其实第一眼看到这题脑子立马蹦出来二分答案。。。（已中 OI xxxer_bound 型病毒，晚期，无救</s></p>
<p>我不会什么聪明的做法，只好枚举了六种情况把它做出来了，对每种情况用各种不等式乱搞一通，总算是搞出来了。</p>
<p>然后发现这貌似还算简洁的方法。</p>
<p>然后就是上个周末，在刷 B 站的时候，看到了这么个视频标题：</p>
<p><a href="https://www.bilibili.com/video/BV1Pg4y1e7aP/?spm_id_from=333.337.search-card.all.click">用傅里叶消元法解决九联填空最后一题</a></p>
<p>我心中一惊，傅里叶消元法？貌似在哪看过啊？然后打开 OI-wiki，检索了一下，果然出现了 FME 的身影，啊，原来我每种情况的干想是可以规范化的！</p>
<p>浅浅算一下 FME（傅里叶-莫茨金消元法）的时间复杂度，<span class="katex--inline">O(n^{2^n})</span> ，嗯，以算法竞赛的角度看并不优，但放到这题 <span class="katex--inline">n</span> 如此之小的版本可谓是绰绰有余。</p>
<p>以这题为例，设 <span class="katex--inline">x</span> 为所求，题目的两个条件为两类，每类 <span class="katex--inline">x</span> 可分别为 <span class="katex--inline">b-a,c-b,1-c</span> 三种情况，所以总共六种情况，随便挑一种情况：</p>
<p><span class="katex--display"> \left\{ \begin{aligned} &amp;a+b\leq 1\\ &amp;x=b-a\\ &amp;x\geq c-b\\ &amp;x\geq 1-c \end{aligned} \right. </span></p>
<p>规范化一下：</p>
<p><span class="katex--display"> \left\{ \begin{align} &amp;a+b-1\leq 0\;\;\;\;\\ &amp;a-b+x=0\\ &amp;b-c+x\geq 0\\ &amp;c+x-1\geq 0 \end{align} \right. </span></p>
<p>首先可以利用 (2) 将 <span class="katex--inline">b</span> 消掉。</p>
<p><span class="katex--display"> \left\{ \begin{aligned} &amp;2a+x-1\leq 0\\ &amp;a-c+2x\geq 0\\ &amp;a+c+2x-1\geq 0 \end{aligned} \right. </span></p>
<p>接下来才是 FME 真正开搞的时候（其实 (2) 也能拆分为两个不等式 <span class="katex--inline">a-b+x\leq 0</span> 和 <span class="katex--inline">a-b+x\geq 0</span>），首先要选定本次要消的元，比如说 <span class="katex--inline">a</span> 。( <span class="katex--inline">x</span> 肯定不行，因为要求的是 <span class="katex--inline">x</span> )，那么就把 <span class="katex--inline">a</span> 搞得特别一点，比如说移到一边（我这样是不是有点形式主义了，<s>算了我喜欢这样</s></p>
<p><span class="katex--display"> \left\{ \begin{aligned} &amp;a\leq \frac{-x+1}{2}\\ &amp;a\geq c-2x\\ &amp;a\geq 1-c-2x \end{aligned} \right. </span></p>
<p>那么这其实和下面这个方程组是等价的：</p>
<p><span class="katex--display"> \left\{ \begin{aligned} &amp;\frac{-x+1}{2}\geq c-2x\\ &amp;\frac{-x+1}{2}\geq 1-c-2x \end{aligned} \right. </span></p>
<p>然后重复此过程就行啦。</p>]]></description><guid isPermaLink="false">/archives/luan-xue-shu-xue-fme</guid><dc:creator>fogflea</dc:creator><enclosure url="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F89217849_p0.jpg&amp;size=m" type="image/jpeg" length="97231"/><category>数学</category><pubDate>Fri, 19 Dec 2025 10:28:12 GMT</pubDate></item><item><title><![CDATA[退役小记]]></title><link>https://www.fogflea.com/archives/wei-ming-ming-wen-zhang</link><description><![CDATA[<img src="https://www.fogflea.com/plugins/feed/assets/telemetry.gif?title=%E9%80%80%E5%BD%B9%E5%B0%8F%E8%AE%B0&amp;url=/archives/wei-ming-ming-wen-zhang" width="1" height="1" alt="" style="opacity:0;">
<p>12.3 是我的生日，那一天我查到了自己的 noip 分数：95+4+8+0=107。</p>
<p>12.14 分数线出了，其实不能拿到省一的话，结局早就注定了。</p>
<p>GD 2= 113pts，可笑，我连 2= 都没有。</p>
<p>本来想在 noip 挽回 s 因天气造成的情绪激动上的犯蠢，没想到我调整好情绪后 noip 又给我拉了一坨大的。</p>
<p>区分度之大让考前一切中档题和模拟赛的训练化为乌有，更可恨的是明明已经多次在考试策略上吃亏了，却仍然固执地想要场切的自己。</p>
<p>哪怕我当时愿意去上个厕所，好好冷静下来想想自己接下来该做什么，都不会因为 noip AFO。</p>
<p>AFO 后，我没有哭，没有感到悲伤，只是有些迷茫。</p>
<p>在我迄今为止的人生中的那些关键节点，小到校内的考试，大到中考，我似乎都尝试着做出了努力，几乎都失败了。而 OI 则是这其中我最认真，花时间和精力最多的，然而最后却是这个下场。</p>
<p>虽然我从六年级就开始接触 OI ，但因为缺乏引导人，加上根本就没有人告诉我这种学科竞赛的作用，我一直都把它当成一个可有可无的存在，直到高一才只能写出一个像样的 dfs ，经过了 noip2024 才猛然醒悟，认真训练了一年。</p>
<p>最后被 NOIp2025 创飞。</p>
<p>距离高考还有一年半的时间，我不知道这多出的半年是否能让我逃离 OI 相同的下场。</p>
<p><strong>我真的不想再在失败后后悔了。</strong></p>
<p>我会拿出全力去搞 whk，一年半后它会回应我的决心吗，我不知道啊，但是我也只能这么做了啊。</p>
<p>不过至少我还有一个成为一名形式科学研究者的理想，这快成为我最强的精神支柱了。</p>
<p>
 <del>还有 ACG。</del>
</p>]]></description><guid isPermaLink="false">/archives/wei-ming-ming-wen-zhang</guid><dc:creator>fogflea</dc:creator><enclosure url="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F%25E5%25B1%258F%25E5%25B9%2595%25E6%2588%25AA%25E5%259B%25BE%25202025-12-14%2520001859.png&amp;size=m" type="image/jpeg" length="8617"/><category>记录</category><category>OI</category><pubDate>Sat, 13 Dec 2025 16:19:50 GMT</pubDate></item><item><title><![CDATA[博客搬家！！！]]></title><link>https://www.fogflea.com/archives/bo-ke-ban-jia</link><description><![CDATA[<img src="https://www.fogflea.com/plugins/feed/assets/telemetry.gif?title=%E5%8D%9A%E5%AE%A2%E6%90%AC%E5%AE%B6%EF%BC%81%EF%BC%81%EF%BC%81&amp;url=/archives/bo-ke-ban-jia" width="1" height="1" alt="" style="opacity:0;">
<p>是的，博客搬家了。</p>
<p>这几年深受其苦啊，首先速度令人堪忧（当然现在这个站也不是特别快，但显然严格优于以前），一测速整个中国不是红就是红
 <del>那很爱国了</del>
 ，其次，刚建站的我对“个性”有着傻逼一样的执着，拿个 hexo butterfly 就使劲地瞎魔改还不写记录和注释，导致整个站的可维护性极差同时还不能对接官方更新，BUG一堆。</p>
<p>前几年一直想要尝试其他方案，最后考虑到一些现实问题
 <del>其实是懒和安于现状</del>
 最后都放弃了。直到今年才重新考虑起这件事。</p>
<p>搬家这件事其实在 9 月还是 10 月的时候就已经有尝试过了。</p>
<p>首先先试了一下 wordpress ，确实客制化挺高而且插件生态丰富，然而等我搞好了一切之后发现wordpress 对 markdown 和 latex/katex 的支持异常贫乏，要知道目前我博客的很大一部分都是关于各种算法和数学，这意味着这个方案已经死了。</p>
<p>后面又零零碎碎地想了几个方案，像什么买 vps 自己建啦，找一个更快一点的托管平台啦，最后总归结到支付手段不足，经济不够和找不到这三个原因。</p>
<p>然后就到了现在，最终还是下定决心搞了，最后也是发现了一个 serverless+halo 的方案，简直完美符合我的需求，就是 halo 的插件生态好像不是很丰富（一百多个？），但是能 katex 和 markdown 就比 wordpress 强太多啦。</p>
<p>以前的文章会陆陆续续搬过来，有些太唐的可能会被我删掉。</p>]]></description><guid isPermaLink="false">/archives/bo-ke-ban-jia</guid><dc:creator>fogflea</dc:creator><enclosure url="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Ffn%2520-%2520big.png&amp;size=m" type="image/jpeg" length="2969"/><category>记录</category><pubDate>Sat, 13 Dec 2025 01:23:00 GMT</pubDate></item><item><title><![CDATA[2025CSP-S考前信心赛]]></title><link>https://www.fogflea.com/archives/2025csp-skao-qian-xin-xin-sai</link><description><![CDATA[<img src="https://www.fogflea.com/plugins/feed/assets/telemetry.gif?title=2025CSP-S%E8%80%83%E5%89%8D%E4%BF%A1%E5%BF%83%E8%B5%9B&amp;url=/archives/2025csp-skao-qian-xin-xin-sai" width="1" height="1" alt="" style="opacity:0;">
<p>cover: Pixiv ID 103842593</p>
<hr>
<p>赛时喜提 <span class="math math-inline">\textcolor{green}{100}+\textcolor{red}{0}+\textcolor{orange}{30}+\textcolor{red}{5}=\textcolor{orange}{135}</span> ，但其实真的是信心赛，仅花 10min 就补成 <span class="math math-inline">\textcolor{green}{100}+\textcolor{green}{100}+\textcolor{orange}{30}+\textcolor{gold}{65}=\textcolor{yellowgreen}{295}</span> 了。</p>
<h2 id="t1-divisors"><a href="https://marsoj.cn/p/3833?tid=68fca900756c0caddf9bf03a">T1 Divisors</a></h2>
<p>水题，对每个数 <span class="math math-inline">O(\sqrt n)</span> 求因子，开桶开 <code>map</code> 算贡献即可。</p>
<pre><code class="language-cpp">#include&lt;bits/stdc++.h&gt;
using namespace std;
#define fio(x) freopen(x".in","r",stdin),freopen(x".out","w",stdout)
#define tio() freopen("in.txt","r",stdin),freopen("out.txt",stdout)
#define cio() ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
using ll=long long;
using ull=unsigned long long;
const int N=210;
int n,m;
int a[N];
map&lt;int,int&gt;t;
int ans[N];
int sum;
int main(){
    //fio("div");
    scanf("%d%d",&amp;m,&amp;n);
    for(int i=1;i&lt;=n;++i){
        scanf("%d",&amp;a[i]);
        for(int j=1;j*j&lt;=a[i];++j){
            if(a[i]%j)continue;
            if(j*j==a[i])++t[j];
            else ++t[j],++t[a[i]/j];
        }
    }
    for(pair&lt;int,int&gt;p:t){
        if(p.first&gt;m)break;
        ++ans[p.second];
        ++sum;
    }
    ans[0]=m-sum;
    for(int i=0;i&lt;=n;++i)printf("%d\n",ans[i]);
    return 0;
}
</code></pre>
<h2 id="t2-market"><a href="https://marsoj.cn/p/MNS20444?tid=68fca900756c0caddf9bf03a">T2 Market</a></h2>
<p>仍然水题，思路想贼快，
 <del>赛时没过装你吗呢。</del></p>
<p>先考虑只有一次购物的情况，显然要背包 <span class="math math-inline">\texttt{dp}</span> ，但体积值域过大，价值过小，所以将价值设进状态中，即设 <span class="math math-inline">f_{i,j}</span> 表示考虑前 <span class="math math-inline">i</span> 个物品，当前价值为 <span class="math math-inline">j</span> 的最小需要体积，方程 <span class="math math-inline">f_{i,j}=\min(f_{i-1,j},f_{i-1,j-v_i}+c_i)</span>，然后考虑多次购物，先把物品和查询分别按时间从小到大排序，然后顺序枚举查询，同时保证这个查询前的前缀背包做完，查询时用二分。</p>
<p>赛时二分用了个贼唐的写法，把有用的值丢 <code>vector</code> 里取相反数再 <code>lower_bound</code> ...明明取个后缀最小值二分就好了。</p>
<pre><code class="language-cpp">#include&lt;bits/stdc++.h&gt;
using namespace std;
#define fio(x) freopen(x".in","r",stdin),freopen(x".out","w",stdout)
#define tio() freopen("in.txt","r",stdin),freopen("out.txt","w",stdout)
#define cio() ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
using ll=long long;
using ull=unsigned long long;
const int N=310,M=1e5+10,V=1e9;
const ll inf=1e18;
int n,m;
int sum;
struct store{
    int c,v,t;
}s[N];
struct query{
    int t,id;
    ll x;
}q[M];
int ans[M];
ll f[2][N*N];
ll tmp[N*N];
void ins(int x){
    for(int i=0;i&lt;=sum;++i){
        f[x&amp;1][i]=f[x-1&amp;1][i];
        if(i-s[x].v&gt;=0)
            f[x&amp;1][i]=min(f[x&amp;1][i],f[x-1&amp;1][i-s[x].v]+s[x].c);
    }
    for(int i=sum;i&gt;=0;--i)tmp[i]=min(tmp[i+1],f[x&amp;1][i]);
}
int ask(ll x){
    int l=0,r=sum,mid;
    while(l+1&lt;r){
        mid=l+r&gt;&gt;1;
        if(tmp[mid]&lt;=x)l=mid;
        else r=mid;
    }
    if(tmp[r]&lt;=x)return r;
    else return l;
}
int main(){
    // tio();
    // fio("market");
    cio();
    cin&gt;&gt;n&gt;&gt;m;
    for(int i=1;i&lt;=n;++i){
        cin&gt;&gt;s[i].c&gt;&gt;s[i].v&gt;&gt;s[i].t;
        sum+=s[i].v;
    }
    for(int i=1;i&lt;=m;++i){
        cin&gt;&gt;q[i].t&gt;&gt;q[i].x;
        q[i].id=i;
    }
    for(int i=0;i&lt;2;++i)
        for(int j=0;j&lt;=sum;++j)
            f[i][j]=1e18;
    for(int i=1;i&lt;=sum+1;++i)tmp[i]=1e18;
    tmp[0]=0;
    f[0][0]=0;
    sort(s+1,s+1+n,[](store a,store b)-&gt;bool{return a.t&lt;b.t;});
    sort(q+1,q+1+m,[](query a,query b)-&gt;bool{return a.t&lt;b.t;});
    for(int i=1,j=1;i&lt;=m;++i){
        while(j&lt;=n&amp;&amp;q[i].t&gt;=s[j].t)ins(j),++j;
        ans[q[i].id]=ask(q[i].x);
    }
    for(int i=1;i&lt;=m;++i)cout&lt;&lt;ans[i]&lt;&lt;"\n";
    return 0;
}
/*
5 2
5 5 4
1 3 1
3 4 3
6 2 2
4 3 2
3 8
5 9
*/
</code></pre>
<h2 id="t3-连通性"><a href="https://marsoj.cn/p/3835?tid=68fca900756c0caddf9bf03a">T3 连通性</a></h2>
<p>赛时没看这题，打了 <span class="math math-inline">\texttt{30pts}</span> 跑了，感觉应该不难？</p>
<p><span class="math math-inline">m=0</span> 时就是任意图都行，每条边取或不取，<span class="math math-inline">2^{\frac{(n-1)n}{2}}</span></p>
<p><span class="math math-inline">m=n</span> 时就是若干互不连通的完全图，直接递推，设 <span class="math math-inline">f_{i,j}</span> 为 <span class="math math-inline">i</span> 个点，<span class="math math-inline">j</span> 个图，<span class="math math-inline">f_{i,j}=jf_{i-1,j}+f_{i-1,j-1}</span></p>
<p>正解待补。</p>
<h2 id="t4-树"><a href="https://marsoj.cn/p/3836?tid=68fca900756c0caddf9bf03a">T4 树</a></h2>
<p>区间和并鼠目寸光加树剖板子不熟 <span class="math math-inline">\texttt{65pts}</span> -&gt; <span class="math math-inline">\texttt{5pts}</span> 。</p>
<p>（悲</p>
<p>发现一个事情，两路径有交时只要一条路经确定方向，另一条路径也确定了，所以一条路径等价于将这条路径所有边并为一个集合，初始一条边为一个集合。所以直接边下放到点树剖，用并查集给定路径上边集合个数， <code>set</code> 辅助用于区间合并 + 集合合并。</p>
<p>但这样做有个问题，那就是判不了无解，想要判无解还要上个线段树，那样代码就太巨了。
 <del>其实我赛后写了线段树懒得调了</del></p>
<pre><code class="language-cpp">#include&lt;bits/stdc++.h&gt;
using namespace std;
#define fio(x) freopen(x".in","r",stdin),freopen(x".out","w",stdout)
#define tio() freopen("in.txt","r",stdin),freopen("out.txt","w",stdout)
#define cio() ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
using ll=long long;
using ull=unsigned long long;
const int N=3e5+10,mod=1e9+7;
int n,m;
vector&lt;int&gt;g[N];
int siz[N],hs[N],de[N],fa[N];
void dfs1(int u,int fath){
    siz[u]=1;
    fa[u]=fath;
    de[u]=de[fath]+1;
    for(int v:g[u]){
        if(v==fath)continue;
        dfs1(v,u);
        siz[u]+=siz[v];
        if(siz[v]&gt;siz[hs[u]])hs[u]=v;
    }
}
int dfn[N],top[N];
int cnt;
void dfs2(int u,int topf){
    dfn[u]=++cnt;
    top[u]=topf;
    if(hs[u])dfs2(hs[u],topf);
    for(int v:g[u]){
        if(v==fa[u])continue;
        if(v==hs[u])continue;
        dfs2(v,v);
    }
}
struct djs{
    int fa[N];
    int tot;
    void init(int m){
        tot=m;
        for(int i=1;i&lt;=m;++i)fa[i]=i;
    }
    int find(int x){
        return fa[x]==x?x:fa[x]=find(fa[x]);
    }
    int mer(int x,int y){
        x=find(x),y=find(y);
        if(x==y)return x;
        --tot;
        fa[x]=y;
        return y;
    }
}ds;
struct node{
    int l,r,v;
    bool operator &lt; (const node&amp; b)const{
        if(l!=b.l)return l&lt;b.l;
        return r&lt;b.r;
    }
};
set&lt;node&gt;s;
void ins(int l,int r,int v){
    if(l&gt;r)return ;
    if(s.size()==0){
        s.insert({l,r,v});
        return ;
    }
    auto il=s.lower_bound({l,r,v});
    if(il!=s.begin()&amp;&amp;prev(il)-&gt;r&gt;=l)--il;
    auto ir=il;
    for(;ir!=s.end()&amp;&amp;ir-&gt;l&lt;=r;++ir){
        l=min(l,ir-&gt;l);
        r=max(r,ir-&gt;r);
        v=ds.mer(v,ir-&gt;v);
    }
    s.erase(il,ir);
    s.insert({l,r,v});
}
void pm(int x,int y,int col){
    while(top[x]!=top[y]){
        if(de[top[x]]&lt;de[top[y]])swap(x,y);
        ins(dfn[top[x]],dfn[x],col);
        x=fa[top[x]];
    }
    if(de[x]&gt;de[y])swap(x,y);
    ins(dfn[x]+1,dfn[y],col);
}
ll qpow(ll a,int x){
    ll res=1;
    while(x){
        if(x&amp;1)(res*=a)%=mod;
        (a*=a)%=mod,x&gt;&gt;=1;
    }return res;
}
ll ans;
int main(){
    // tio();
    // fio("usmjeri");
    cio();
    cin&gt;&gt;n&gt;&gt;m;
    for(int i=1;i&lt;n;++i){
        int u,v;
        cin&gt;&gt;u&gt;&gt;v;
        g[u].push_back(v);
        g[v].push_back(u);
    }
    dfs1(1,0);
    dfs2(1,1);
    ds.init(m);
    for(int i=1;i&lt;=m;++i){
        int u,v;
        cin&gt;&gt;u&gt;&gt;v;
        pm(u,v,i);
    }
    int tmp=n-1;
    for(node it:s){
        tmp-=(it.r-it.l+1);
    }
    ans=(qpow(2,ds.tot+tmp));
    cout&lt;&lt;ans;
    return 0;
}
</code></pre>
<p>感觉正解应该是一个优美的 <span class="math math-inline">\texttt{dp}</span> 啥的，毕竟我一开始也是往 <span class="math math-inline">\texttt{dp}</span> 去想的。</p>
<p>正解待补。</p>]]></description><guid isPermaLink="false">/archives/2025csp-skao-qian-xin-xin-sai</guid><dc:creator>fogflea</dc:creator><enclosure url="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F103842593_p0_master1200.jpg&amp;size=m" type="image/jpeg" length="92123"/><category>Contest</category><pubDate>Sat, 25 Oct 2025 14:57:00 GMT</pubDate></item><item><title><![CDATA[[OOI 2023] Music Festival]]></title><link>https://www.fogflea.com/archives/ooi-2023-music-festival</link><description><![CDATA[<img src="https://www.fogflea.com/plugins/feed/assets/telemetry.gif?title=%5BOOI%202023%5D%20Music%20Festival&amp;url=/archives/ooi-2023-music-festival" width="1" height="1" alt="" style="opacity:0;">
<p>cover: 魔宴CG</p>
<hr>
<p>首先简化问题很明显，每组有用的只有前缀最大值。</p>
<p>先想想贪心，不可做，因为一组的贡献会被其他组影响，所以考虑 <span class="math math-inline">\texttt{dp}</span></p>
<p>组与组之间无序，不能沿编号轴 <span class="math math-inline">\texttt{dp}</span> ,考虑值域轴，每接上一个组只需要考虑当前最大值，且较大最大值一定由较小最大值转移而来，所以设 <span class="math math-inline">f_i</span> 表示当前最大值为 <span class="math math-inline">i</span> 的最优值，方程：</p>
<div class="math math-display">f_i=\max_{0\leq j&lt; i,p\in M_i}\{f_j+cnt(p,j)\}</div>
<p>其中 <span class="math math-inline">M_i</span> 表示最大值为 <span class="math math-inline">i</span> 的专辑集合， <span class="math math-inline">cnt(p,j)</span> 表示在专辑 <span class="math math-inline">p</span> 中 <span class="math math-inline">&gt;j</span> 的元素个数，暴力转移是 <span class="math math-inline">O(n^2)</span> 的。</p>
<p>考虑优化，注意到总元素个数是 <span class="math math-inline">O(n)</span> 级别的，所以每次依赖每个元素转移，具体做法：用线段树维护 <span class="math math-inline">f_{0...j}</span> ，每次转移暴力枚举一个专辑相邻的两个元素对 <span class="math math-inline">f</span> 数组的贡献做一个区间加取 <span class="math math-inline">\max</span> ，同时维护叶子原始值保证下次转移还能用，复杂度 <span class="math math-inline">O(n\log n)</span></p>]]></description><guid isPermaLink="false">/archives/ooi-2023-music-festival</guid><dc:creator>fogflea</dc:creator><enclosure url="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F0788_0786.webp&amp;size=m" type="image/jpeg" length="112988"/><category>Sol</category><pubDate>Fri, 24 Oct 2025 13:01:00 GMT</pubDate></item><item><title><![CDATA[P4616 [COCI 2017 and 2018 5] Pictionary]]></title><link>https://www.fogflea.com/archives/p4616-coci-2017-and-2018-5-pictionary</link><description><![CDATA[<img src="https://www.fogflea.com/plugins/feed/assets/telemetry.gif?title=P4616%20%5BCOCI%202017%20and%202018%205%5D%20Pictionary&amp;url=/archives/p4616-coci-2017-and-2018-5-pictionary" width="1" height="1" alt="" style="opacity:0;">
<p>cover: Pixiv ID 64192132</p>
<hr>
<p>考虑整个建边过程，任意 <span class="math math-inline">(a,b)</span> 都连边肯定不好搞，因为只要求连通，所以看一下有没有等价方案，发现在某一天 <span class="math math-inline">m-i+1=g</span> 时，把所有的 <span class="math math-inline">kg</span> 向 <span class="math math-inline">g</span> 连边是等价的，可以直接把询问两个端点丢到对应集合里，每次合并枚举小集合查大集合就能做到 <span class="math math-inline">n\log n</span></p>
<pre><code class="language-cpp">#include&lt;bits/stdc++.h&gt;
using namespace std;
#define fio(x) freopen(x".in","r",stdin),freopen(x".out","w",stdout)
#define tio() freopen("in.txt","r",stdin),freopen("out.txt","w",stdout)
using ll=long long ;
const int N=1e5+10;
int n,m,q;
set&lt;int&gt;s[N];
int ans[N];
int fa[N];
int siz[N];
int find(int x){return fa[x]==x?x:fa[x]=find(fa[x]);}
void mer(int x,int y,int t){
	x=find(x),y=find(y);
	if(x==y)return ;
	if(siz[x]&lt;siz[y])swap(x,y);
	for(auto it=s[y].begin();it!=s[y].end();++it){
		if(s[x].count(*it))ans[*it]=t,s[x].erase(*it);
		else s[x].insert(*it);
	}
	fa[y]=x;
	siz[x]+=siz[y];
}
int main(){
	// fio("bridge");
	// tio();
	scanf("%d%d%d",&amp;n,&amp;m,&amp;q);
	for(int i=1;i&lt;=q;++i){
		int a,b;
		scanf("%d%d",&amp;a,&amp;b);
		s[a].insert(i);
		s[b].insert(i);
	}
	for(int i=1;i&lt;=n;++i)fa[i]=i,siz[i]=1;
	for(int i=m;i&gt;0;--i){
		for(int j=2*i;j&lt;=n;j+=i){
			mer(i,j,m-i+1);
		}
	}
	for(int i=1;i&lt;=q;++i)
		printf("%d\n",ans[i]);
	return 0;
}
</code></pre>]]></description><guid isPermaLink="false">/archives/p4616-coci-2017-and-2018-5-pictionary</guid><dc:creator>fogflea</dc:creator><enclosure url="https://www.fogflea.com/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2F64192132_p0.jpg&amp;size=m" type="image/jpeg" length="114195"/><category>Sol</category><pubDate>Fri, 24 Oct 2025 11:52:00 GMT</pubDate></item></channel></rss>