\[\mathfrak{Defining~\LaTeX~macros\dots}
\require{cancel}
\]

0.「集训队互测 2018」「LOJ #2504」小 H 爱染色 ✡️

  Link & Submission.


  Tags:「A.数学-多项式」「A.数学-数学推导」「A.数学-Stirling 数/反演」「B.Tricks」

  破题的关键在于对 \(F(A)\) 中 \(A^i\) 的处理. 这个 \(A\) 可以理解作前缀白球数量, 而为了免于枚举 "前缀", 我们可以把 "前缀" 理解作 "\(A^i\) 对应的对象被定序在两次染色对应的对象之前" 这样的组合情景. "定序" 自然只能对小球定序, 那么我们思路就是把前后两项分别转化为 "选一些小球" 的方案数, 然后将选出来的小球一起放入长度为 \(n\) 的可用序列, 就能求出答案.

  对于 \(A^i\), Stirling 反演恰好提供了一个很好的转化: 枚举 "在 \(A\) 个球中任选有序可重复的 \(i\) 个球" 时, 最终被选过的球数. 对于两次染色, 直接枚举最终被染黑的求数就能完成转化. 枚举多项式的次数 \(i\), \(A^i\) 中被选过的球数 \(j\), 被染黑的球数 \(k\), 可以表达出答案:

\[\begin{aligned}
\textit{ans} &= \sum_{i=0}^mf_i\sum_{j=0}^i{i\brace j}j!\sum_{k=m}^{2m}\binom{k}{m}\binom{m}{k-m}\binom{n}{j+k}\\
&= \sum_{j=0}^m\sum_{k=m}^{2m}j!\cdot\binom{k}{m}\binom{m}{k-m}\cdot\binom{n}{j+k}\color{red}{\sum_{i=j}^mf_i{i \brace j}}\\
&= \sum_{j=0}^m\sum_{k=m}^{2m}j!\cdot\binom{k}{m}\binom{m}{k-m}\cdot\binom{n}{j+k}\color{red}{\sum_{i=0}^mf_i\frac{1}{j!}\sum_{t=0}^j(-1)^{j-t}\binom{j}{t}t^i}\\
&= \sum_{j=0}^m\sum_{k=m}^{2m}j!\cdot\binom{k}{m}\binom{m}{k-m}\cdot\binom{n}{j+k}\color{red}{\sum_{t=0}^j\frac{(-1)^{j-t}}{j!}\binom{j}{t}\sum_{i=0}^mf_it^i}\\
&= \sum_{j=0}^m\sum_{k=m}^{2m}j!\cdot{\color{blue}{\binom{k}{m}\binom{m}{k-m}}}\cdot\binom{n}{j+k}\color{red}{\sum_{t=0}^j\frac{F(t)}{t!}\cdot\frac{(-1)^{j-t}}{(j-t)!}}\\
&= \sum_{j=0}^m\sum_{k=m}^{2m}j!{\color{red}{f(j)}}\cdot{\color{blue}{g(k)}}\binom{n}{\color{green}{j+k}}\\
&= \sum_{{\color{green}s}=m}^{3m}\binom{n}{s}\sum_{j+k=s}j!f(j)g(k).
\end{aligned}
\]

  化简比较初等, 就不解释了. 算 \(f\) 和答案各需要一次多项式乘法. 复杂度 \(\mathcal O(m\log m)\).

Remark.

  最初表达式中的 \(\binom{n}{j+k}\) 不动声色的讲述了 "第一个黑色之前的白色才算数" 这一信息, 感觉是一个不错的思维 trick.

1.「LOJ #6402」yww 与校门外的树

  Link & Submission.


  Tags:「A.数学-多项式」「A.数学-生成函数」

  对于一个排列, 将其所有顺序对连双向边. 题目即求所有排列连通块大小乘积之和.

  设 \(F(z)\) 为组合成单个连通块的方案数关于排列长度的 OGF, \(P(z)\) 为排列数量关于排列长度的 OGF. 则显然有 \(\sum_{i\ge0}F^i(z)=P(z)\), 得 \(F(z)=1-P^{-1}(z)\). 答案就是 \([z^n]\frac{1}{1-\vartheta F(z)}\) 啦. 复杂度 \(\mathcal O(n\log n)\).

2.「集训队互测 2019」「LOJ #3075」组合数求和 ✡️

  Link & Submission.


  Tags:「A.数学-数学推导」「B.Tricks」

\[f_c=[z^c]\sum_{i=0}^{n-1}(1+z)^{id}=[z^c]\frac{1-(1+z)^n}{1-(1+z)^d}.
\]

  但凄神寒骨, 悄怆幽邃的是, \(M\) 是任意的, \(d\) (分母约掉 \(z\) 之后的常数项) 甚至可能不与 \(M\) 互素. 我们势必需要用 CRT 之类的东西来抢救这个做法. 对于 \(M\) 的一个极大素因子幂 \(p^{\alpha}\), 我们希望求出

\[F(z)=\sum_{i=0}^{n-1}(1+z)^{id}\bmod p^\alpha.
\]

虽然多项式没有逆, 但乘法关系还是可以表达的. 若令

\[G(z)=\frac{1-(1+z)^d}{z}\bmod p^\alpha,~H(z)=\frac{1-(1+z)^{nd}}{z}\bmod p^\alpha;
\]

就有 \(H(z)\equiv F(z)G(z)\). 想要求 \(F(z)\), 由于 \(G,H\) 的系数非常平凡, 对比两侧系数:

\[[z^c]H(z)=\sum_{i=0}^c[z^{c-i}]F(z)\cdot[z^i]G(z).
\]

拎出与 \(p\) 互素的最靠前的 \([z^k]G(z)\), 表达此时我们想求的一个 \([z^t]F(z)\), 有

\[[z^k]G(z)\cdot[z^t]F(z)=[z^{k+t}]H(z)-{\color{blue}{\sum_{i=0}^{k-1}[z^{t+k-i}]F(z)\cdot[z^i]G(z)}}-{\color{red}{\sum_{i=k+1}^{t+k}[z^{t+k-i}]F(z)\cdot[z^i]G(z)}}.
\]

  发生了什么呢? 红色部分一定有 \(t+k-i<t\), 我们可以尝试递推求出 \([z^t]F(z)\). 同时注意到, 蓝色部分一定是 \(p\) 的倍数. 若对于所有满足 \(j>k\) 的 \([z^j]F(z)\), 再次用 \([z^k]G(z)\cdot[z^j]F(z)\) 迭代, 蓝色 \(\times\) 蓝色一定是 \(p^2\) 的倍数, 其余项都是可算或可递推的. 迭代 \(\alpha\) 次之后, 蓝色当场消失! 我们由此就能生成 \([z^t]F(z)\) 的递推是啦!

  迭代的复杂度是 \(\mathcal O(md\alpha+d^2k^2)\), 总复杂度是一大坨. 建议学会了就行, 不要写这托答辩.

Remark.

  其实想到了迭代多次消除 \(p\) 的高次式子, 但没有想到利用 "不太行" 的 GF 关系列出等式观察系数. 这个题有点高科技啊.

3.「LibreOJ Round #10」「LOJ #565」mathematican 的二进制

  Link & Submission.


  Tags:「水题无 tag」

  显然进位次数和操作顺序无关. 从低到高维护当前积压 bit 的出现概率关于积压 bit 数量的 GF, 每次 GF 长度会减半, 然后用分治 FFT 乘上当前 bit 的修改. 复杂度 \(\mathcal O(n\log^2n)\) (\(n,m\) 同阶).

4.「集训队互测 2019」「洛谷 P6262」神树大人挥动魔杖 @

  Link. 嘴巴了.


  Tag:「A.数学-数学推导」

  设 \(h_i\) 表示一个人走到 \(i\) 的方案数, 那么 \(h_i=ph_{i-1}+qh_{i-2}\). 考虑容斥限制 "每个格子都被踩过", 令 \(f_i\) 表示 \(m\) 个人走到 \(i\), 钦定未走过 \(i-1\) 的带容斥系数方案数, 枚举上次被钦定未走过的格子, 则

\[f_i=-\sum_{j=1}^{i-2}(qh_{i-j-1})^mf_j.
\]

再令 \(g_i\) 表示 \(n=i\) 时的答案, 则

\[g_i=\sum_{j=1}^i(h_{i-j+1}+qh_{i-j})^mf_j.
\]

 接下来的工作是求答案. 设 \(F(z),G(z),H(z)\) 分别为三个序列的 GF, 对于 \(H(z)\), 显然有

\[H(z)=z+pzH(z)+qz^2H(z)=\frac{z}{1-pz-qz^2}.
\]

引入其特征根

\[\Delta=p^2+4q,~\alpha=\frac{p+\sqrt{\Delta}}{2},~\beta=\frac{p-\sqrt{\Delta}}{2};
\]

可以将其分解为

\[H(z)=\frac{A}{1-\alpha z}+\frac{B}{1-\beta z},
\]

那么有 \(h\) 的通项

\[h_i=A\alpha^i+B\beta^i.
\]

  我们还需要研究 \(\mathcal H(z)=\sum_i h_i^mz^i\), 直接代入通项:

\[\begin{aligned}
\mathcal H(z) &= \sum_{i\ge0}z^i\sum_{j=0}^m\binom{m}{j}A^j\alpha^{ij}B^{m-j}\beta^{i(m-j)}\\
&= \sum_{j=0}^n\binom{m}{j}A^jB^{m-j}\sum_{i\ge0}\alpha^{ij}\beta^{i(m-j)}z^i\\
&= \sum_{j=0}^m\frac{\binom{m}{j}A^jB^{m-j}}{1-\alpha^j\beta^{m-j}z}.
\end{aligned}
\]

到此, 若令 \(\mathcal H(z)=P(z)Q^{-1}(z)\), 则 \(Q(z)=\prod_j(1-\alpha^j\beta^{m-j}z)\). 同理, \(F(z),G(z)\) 也可以化简作有理分式. 用 Bostan-Mori 求答案即可. 复杂度 \(\mathcal O(m\log m\log n)\).

5.「SDOI 2013」「洛谷 P3307」项链

  Link & Submission.


  Tag:「A.数学-Pólya 计数」

  首先考虑求出珠子的种类数 \(c\). 做一个小小的容斥, 若令

\[c_3=\sum_{i=1}^a\sum_{j=1}^a\sum_{k=1}^a\sum_{d\mid i,d\mid j,d\mid k}\mu(d)=\sum_{d=1}^a\mu(d)\lfloor a/d\rfloor^3,\\
c_2=\sum_{i=1}^a\sum_{j=1}^a\sum_{d\mid i,d\mid j}\mu(d)=\sum_{d=1}^a\mu(d)\lfloor a/d\rfloor^2,\\
c_1\cancel{=\sum_{i=1}^a\sum_{d\mid i}\mu(d)=\sum_{d=1}^a\mu(d)\lfloor a/d\rfloor}=1;
\]

则显然有 \(c=\frac{1}{6}(c_3+3c_2+2c_1)\).

  接下来就是一个纯纯的 Polya 计数. 设用 \(c\) 种颜色染长为 \(\ell\) 的环, 相邻点不同色的方案数为 \(f(\ell,c)\), 有个耳熟能详的结论是 \(f(\ell,c)=(c-1)\cdot(-1)^\ell+(c-1)^\ell\). 注意这个项链只允许旋转不允许翻转, Polya 一下就是

\[\textit{ans}=\sum_{i=0}^{n-1}f(\gcd(i,n),c)=\sum_{d\mid n}f(d,c)\varphi(n/d).
\]

  答案是 \(\textit{ans}/n\), 但 \(n\) 可能没有逆元, 所以需要在 \(P^2\) 下完成运算再除掉 \(P\) 因子. 单次复杂度 \(\mathcal O(d(n)+m)\).

6.「THUPC 2019」「洛谷 P5376」过河卒二

  Link & Submission.


  Tag:「A.数学-组合计数」

  先考虑简单的行走的方案数. 设 \(f(i,j)\) 表示走出位移向量 \((i,j)\) 的方案数, 显然

\[f(i,j)=f(i-1,j)+f(i,j-1)+f(i-1,j-1).
\]

引入 GF 简单优化一下,

\[\begin{aligned}
F_i(z) &= F_{i-1}(z)+zF_i(z)+zF_{i-1}(z)\\
&= \frac{1+z}{1-z}F_{i-1}(z)\\
&= \frac{(1+z)^i}{(1-z)^{i+1}}
\end{aligned}
\]

到此我们得到了一个 \(\mathcal O(\min\{a,b\})\) 算 \(f(a,b)\) 的方法, 由于 \(m,k\) 都挺小, 差不多够用了.

  我们还需要求从一个位置走出棋盘的方案数. 设从 \((0,0)\) 走出边界 \((i,j)\) 的棋盘的方案数为 \(g(i,j)\), 这里有必要考虑到 \(i\gg j\), 那么

\[\begin{aligned}
g(i,j) &= 3f(i,j)+2\sum_{k=0}^{i-1}f(k,j)+2\sum_{k=0}^{j-1}f(i,k)\\
&= 3f(i,j)+2[z^{i-1}]\frac{(1+z)^j}{(1-z)^{j+2}}+2[z^{j-1}]\frac{(1+z)^i}{(1-z)^{i+2}}.
\end{aligned}
\]

虽然递推组合数很别扭但还是可以 \(\mathcal O(\min\{a,b\})\) 地算, 于是乎容斥一发就 \(\mathcal O(mk^2)\) 做完了.

  模数是素数但很小, 需要用 \(a\times p^w\) 表示所需的一些值.

  UPD: 首先, 我是伞兵. 其次, \(g(i,j)=f(i+1,j+1)\).

7.「AHOI/HNOI 2017」「洛谷 P3726」抛硬币

  Link & Submission.


  Tag:「A.数学-组合计数」

  当 \(a=b\) 时, 答案为即非平局数量的一半, 即

\[\textit{ans}=\frac{1}{2}\left(2^{a+b}-\sum_{i=0}^a\binom{a}{i}^2\right)=2^{a+b-1}-\frac{1}{2}\binom{2a}{a}.
\]

  沿着这一思路讨论 \(a>b\) 的情形. 注意到 \(a-b\) 挺小, 我们可以做一个小小的讨论: 将所有 A 胜的方案分为所有硬币翻转后 B 胜的方案和所有硬币翻转后是 A 胜或平局的方案. 讨论的目的很自然: 如果能算出后者, 我们就能沿用 "非平局数量的一半" 这个思路了.

  设第二类方案中, A 有 \(w_a\) 枚正面硬币, B 有 \(w_b\) 枚正面硬币, 则它们需要满足 \(w_a>w_b\) 且 \(a-w_a\ge b-w_b\), 即 \(a-b\ge w_a-w_b>0\). 可见 \(w_a-w_b\) 是可枚举的. 则此类方案数 \(c\) 可以表示为 (\(i\) 枚举 \(w_b\), \(j\) 枚举 \(w_a-w_b\)):

\[\begin{aligned}
c &= \sum_{i=0}^b\sum_{j=1}^{a-b}\binom{b}{i}\binom{a}{i+j}\\
&= \sum_{j=1}^{a-b}\sum_{i=0}^b\binom{b}{b-i}\binom{a}{i+j}\\
&= \sum_{j=1}^{a-b}\binom{a+b}{j+b}.
\end{aligned}
\]

顺便写出答案:

\[\begin{aligned}
\textit{ans} &= \frac{1}{2}\left(2^{a+b}-\sum_{i=0}^b\binom{a}{i}\binom{b}{i}+c\right)\\
&= 2^{a+b-1}-\frac{1}{2}\binom{a+b}{b}+\frac{1}{2}\sum_{j=1}^{a-b}\binom{a+b}{j+b}.
\end{aligned}
\]

  还要写扩展 Lucas, 真是令人眼前一黑.


「扩展 Lucas」

  没写过博客, 回忆一下.

  欲求 \(\binom{n}{m}\bmod p^{\alpha}\). 设 \(w_p(x)=\max\{p^k~\big|~p^k\mid x\}\), 我们可以通过 Legendre 定理轻松地求出 \(w_p(n!)\), 接下来需要处理的问题是

\[\frac{n!/w_p(n!)}{m!/w_p(m!)\cdot(n-m)!/w_P((n-m)!)}\bmod p^{\alpha},
\]

当然下面的家伙是有逆元的, 所以只需要解决形如

\[n!/w_p(n!)\bmod p^{\alpha}
\]

这样的问题.

\[\begin{aligned}
n! &= \prod_{i=1}^ni\\
&= \prod_{i=1}^{n/p}i\cancel{p}\cdot\prod_{i\le n,p\nmid i}i\\
&[\equiv] (n/p)!\cdot\left(\prod_{i<p^\alpha,p\nmid i}i\right)^{n/p^{\alpha}}\prod_{\lfloor n/p^{\alpha}\rfloor p^\alpha\le i\le n,p\nmid i}i.
\end{aligned}
\]

\([\equiv]\) 大概指 "在这种语境下同余", 相信你看得懂. (

  递归下去算, 复杂度 \(\mathcal O(p^\alpha\log_pn)\).


  对于本题, 可以预处理 \(\bmod 2^{10}\) 和 \(\bmod 5^9\) 的扩展 Lucas (\(2\) 的幂预处理到 \(k+1\) 次幂是因为计算过程中有一个 \(\div2\)), 后续的计算都是 \(\mathcal O(\log n)\) 的了.

8.「LOJ #6503」Magic

  Link & Submission.


  Tags:「A.数学-生成函数」「A.数学-多项式」

  魔术对仅出现于相邻同色元素, 可以发现不同色元素相对独立. 设 \(G_s(z)\) 表示一个数量为 \(s\) 的颜色中, 方案数关于钦定的连通块数的 EGF, 那么

\[G_s(z)=\sum_{i=1}^{s}\frac{z^i}{i!}\binom{s-1}{i-1}.
\]

全局方案数关于钦定的连通块数的 EGF 则为

\[G(z)=\prod_{i=1}^mG_{a_i}(z).
\]

  对 \(G(z)\) 二项式反演一下就好. 注意写的时候想清楚 "连通块数" 和 "魔术对数" 组合意义上的关系. 瓶颈复杂度是分治 FFT 的 \(\mathcal O(n\log^2n)\).

9.「集训队作业 2020」「LOJ #3398」带加强和多项木 ✡️

  Link & Submission. (题目中的有根树是儿子有序, 结点无标号的树.)


  Tags:「A.数学-生成函数」「A.数学-Lagrange 反演」「B.Tricks」

  冥冥之中看过这题题解的样子… 不会是在梦里吧.

  设 \(F(z)\) 为铁树数量关于叶子数量的 GF, 显然

\[F(z)=z+\sum_{i\in D}F^i(z).
\]

我们希望求出 \([z^n]F(z)\). 看到这样的 GF 形式, 审时度势之后, 我立马滚去复习 Lagrange 反演.

  学成归来, 一眼盯真:

\[G(z)=z-\sum_{i\in D}z^i,G(F(z))=z.
\]

拉反:

\[[z^n]F(z)=[z^{n-1}]G'(z)(zG^{-1}(z))^{n+1}.
\]

注意这里需要用变形形式规避模意义下可能无意义的 \(\frac{1}{n}\).

  到这里, 这道题才露出了她的邪恶爪牙: 我们需要算一个多项式的超级高次幂模一个超级小模数.


「EI 科技: 小模数下的多项式幂」

  名字瞎编的, 不过 EI 的确写过关于这个的博客, 不知道有没有好哥哥帮我找找. (

  先考虑对素数 \(p\) 取模的情况. 对于多项式幂的处理, 有一个很小巧的结论:

\[F^p(z)\equiv F(z^p)\pmod{p}.
\]

简单 Lucas 定理可证.

  利用这一结论, 我们可以尝试一个递归解法. 假设我们希望求出 \([z^m]A(z)B^n(z)\bmod p\), 令 \(m=pk_m+r_m,n=pk_n+r_n\), 那么

\[[z^m]A(z)B^n(z)=[z^{pk_m+r_m}](A(z)B^{r_n}(z))B^{pk_n}(z),
\]

此时令 \(A(z)B^{r_n}(z)=\sum_{r=0}^{p-1}z^rC_r(z^p)\), 则

\[\begin{aligned}[]
[z^m]A(z)B^n(z) &\equiv [z^{pk_m+r_m}]z^{r_m}C_{r_m}(z^p)B^{pk_n}(z)\\
&\equiv [z^{pk_m}]C_{r_m}(z^p)B^{k_n}(z^p)\\
&\equiv [z^{k_m}]C_{r_m}(z)B^{k_n}(z)\pmod p.
\end{aligned}
\]

  设 \(A(z),B(z)\) 的次数均为 \(\mathcal O(w)\), 预处理所有 \(B^r(z)\), 我们能得到 \(\mathcal O(w^2p^2)-\mathcal O(w^2\log_pn)\) 的算法.

  接下来考虑对素数幂 \(p^\alpha\) 取模的情况. 第一项任务自然是找到类似上面的结论. 我们发现:

\[F^{p^\alpha}(z)\equiv F^{p^{\alpha-1}}(z^p)\pmod{p^\alpha}.
\]

可以归纳证明. 当 \(\alpha=1\) 时显然成立. 接下来由 \(\alpha\) 归纳向 \(\alpha+1\). 设 \(F^{p^\alpha}(z)=F^{p^{\alpha-1}}(z)+p^\alpha R(z)\), 那么

\[\begin{aligned}
F^{p^{\alpha+1}}(z) &= (F^{p^{\alpha-1}}(z^p)+p^\alpha R(z))^p\\
&= \sum_{i=0}^p{\color{red}{\binom{p}{i}}}F^{ip^{\alpha-1}}(z^p)\cdot {\color{red}{p^{\alpha(p-i)}}}R^{p-i}(z)\\
&\equiv F^{p^\alpha}(z^p)\pmod{p^{\alpha+1}}.
\end{aligned}
\]

两个红色项加持下, 仅有 \(i=p\) 时内部模意义下非 \(0\). 由此完成归纳.

$\square$

  回到对 \([z^m]A(z)B^n(z)\pmod{p^\alpha}\) 的求解. 令 \(A_0(z)=A(z)B^{n\bmod p^{\alpha-1}}\), \(B_0(z)=B^{p^{\alpha-1}}(z)\), \(n_0=\lfloor n/p^{\alpha-1}\rfloor\), 这样 \(n_0\) 上的 \(p\) 因子就能用结论直接放入 \(B_0(z)\), 由此得到和模 \(p\) 时完全一样的递归形式. 其复杂度为 \(\mathcal O(w^2p^{2\alpha})-\mathcal O(w^2p^{2\alpha-2}\log_pn)\). 所有多项式乘法为暴力卷积.

  顺带一提, 结论的推导与 \(n\) 并不相关, 因此可以不加任何修正地处理 \(n<0\) 的情况.


  这道题也就这样啦, 拉反之后套用上诉算法求解, 再 CRT 合并出答案就好 直接枚举答案检查是否合法就好. 最坏复杂度 \(\mathcal O(k^2m^2)-\mathcal O(k^2m^2\log_mn)\).

Remark.

  学会一道这样的数学题真的治愈, 喜欢科技发明家们.

  (是鲜花捏.)

Solution Set - 冬日纪行(前半)的更多相关文章

  1. hiho一下第91周《Events Arrangement》(前半部分)

    题目大意 现在有一场持续时间为M的游乐会,在游乐会上有N种不同的表演节目,同一时间只能有一个节目进行表演. 每种节目最多可以表演K次,且每种节目具有自己的三个属性值a[i],b[i],c[i]. 当一 ...

  2. 读了前半本<Thinking in Java>

    读了1-14章.这本书真的不适合初学者,可能比较适合有一两年Java经验的人来读.学习真的是一个螺旋递进的过程.刚开始学Java基本语法,书上看到的很多东西觉得过于细枝末节,没见过,用不上,导致书看不 ...

  3. ES6的小知识(前半部分)

    一.let与const的使用 let:用来声明一个变量,与var类似 1.用let声明的变量,所声明的变量只在命令所在的代码块内有效 function hander(){ let a = 10; co ...

  4. java程序员修炼之前笔记(前半部分)

    第一部分 用java7做开发 第一章 初始java7 java7中的新特性 switch支持String 支持100_000_000数值表示法 新的异常处理 | 连接多个异常 final Except ...

  5. Pro ASP.NET Core MVC 第6版 第二章(前半章)

    目录 第二章 第一个MVC 应用程序 学习一个软件开发框架的最好方法是跳进他的内部并使用它.在本章,你将用ASP.NET Core MVC创建一个简单的数据登录应用.我将它一步一步地展示,以便你能看清 ...

  6. COCI 2018/2019 CONTEST #2 T4 Maja T5Sunčanje Solution

    COCI 2018/2019 CONTEST #2 T4 T5 Solution abstract 花式暴力 #2 T5 Sunčanje 题意 按顺序给你1e5个长方形(左下角坐标&& ...

  7. 记NOIP分数出来前

    咩~成绩还没有出来呢!但是拿到了每个人的程序,还有一堆民间的数据.我测了好多不同的数据,基本上D1T1,D2T1,D2T2的都是暴力解决掉的,没有什么问题,唯一就是D1T2的link那一题,写的时候2 ...

  8. 前后端分离djangorestframework—— 在线视频平台接入第三方加密防盗录视频

    加密视频 在以后的开发项目中,很可能有做在线视频的,而在线视频就有个问题,因为在线播放,就很有可能视频数据被抓包,如果这个在线视频平台有付费视频的话,这样就会有人做点倒卖视频的生意了,针对这个问题,目 ...

  9. [PHP] 算法-原址排序数组使奇数位于偶数前面的PHP实现

    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 1.遍历数组,判断元素奇数偶数 ...

  10. 愿你走出半生,归来仍是Java Parser

    几天前,我的一个朋友给了我一个Haskell问题 Hey, MK,假设我有个BNF,并且我在Haskell中有个这个BNF的parser.现在,我想给这个BNF改一行,有没有办法不用动这个BNF pa ...

随机推荐

  1. spring下 -spring整体架构,JdbcTemplate笔记

    2,搭建Java Maven项目 我的idea是2024.1.1版本,创建普通Maven项目如下图: 用的jdk8,项目名可以自己改,Archetype选图中的第一个就行,之后点 create. 创建 ...

  2. 『玩转Streamlit』--页面布局

    一个优秀的数据应用不仅仅是功能的强大,更在于其用户体验的打造. 而良好的页面布局,作为用户体验的重要组成部分,不仅能够提升信息的可读性,还能引导用户高效地完成操作. 反之,混乱的布局会让人感到困惑和挫 ...

  3. 模拟器运行环境及Lua代码——使用遗传进化算法(neat算法)玩超级玛丽游戏

    SuperMario_GeneticEvolution_Neat 项目介绍: 模拟器运行环境及Lua代码--使用遗传进化算法(neat算法)玩超级玛丽游戏 代码地址: https://openi.pc ...

  4. 解决MobaXterm自动断开连接,亲测有效~

    场景: 使用MobaXterm工具通过SSH连接Linux服务器,如果一段时间没有操作,MobaXterm会把连接自动断开,这个设定很是不方便.通过更改下面的设置可以使SSH保持长连接,不会自动断开.

  5. springboot的基本使用

    SpringBoot简介 SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程. 使用了Spring框架后已经简化了我们的开发,而Spr ...

  6. .NET现在可以做什么,有哪些公司在用的?

    前言 本文大姚和大家一起来分析一下.NET现在可以做什么,.NET未来的发展趋势在哪,有哪些公司在使用的. .NET简单介绍 .NET是一个开源(MIT License).免费.跨平台的开发人员平台框 ...

  7. Java真的没出路了吗?

    Java从1991年由James Gosling和他的同事们开发, 至今已经三十多年, 我们知道,任何产品都有生命周期, 都要经历从诞生.发展.成熟.消亡四个阶段, 目前的Java已经处在成熟阶段, ...

  8. 【一步步开发AI运动小程序】十六、AI运动识别中,如何判断人体站位?

    [云智AI运动识别小程序插件],可以为您的小程序,赋于人体检测识别.运动检测识别.姿态识别检测AI能力.本地原生识别引擎,无需依赖任何后台或第三方服务,有着识别速度快.体验佳.扩展性强.集成快.成本低 ...

  9. python 递归比较两个文件夹

    以下 import filecmp, os def compare_folders(folder1, folder2): dcmp = filecmp.dircmp(folder1, folder2) ...

  10. VUE3 使用资源路径加载

    1.使用场景 有些情况下,我需要使用组件路径动态的方式加载组件. 2.实现方法 import { defineAsyncComponent } from 'vue'; /** * 根据view组件路径 ...