diff --git a/2023/10/26/Test-Article/index.html b/2023/10/26/Test-Article/index.html index 636651d..1ed5ba7 100644 --- a/2023/10/26/Test-Article/index.html +++ b/2023/10/26/Test-Article/index.html @@ -35,7 +35,7 @@
1
print("Hello, Love from Yttr")


$f(x) = x^2+x+1$

-

Test Article

https://yttriumwillow.github.io/2023/10/26/Test-Article/

作者

YttriumWillow

发布于

2023-10-26

更新于

2023-10-27

许可协议

#
You need to set install_url to use ShareThis. Please set it in _config.yml.

评论

You forgot to set the shortname for Disqus. Please set it in _config.yml.
+ +
P5377 [THUPC2019] 鸽鸽的分割 题解

P5377 [THUPC2019] 鸽鸽的分割 题解

简要题意

连结圆上 $n$ 个点,求最多能够把圆分成几个部分。

+

前置知识

欧拉公式:$F(ace)=E(dge) - V(ertex)+2$

+

人话:$\text{多边形面数} = \text{边数} - \text{顶点数} + 2$

+

思路

将一个圆折叠成一个多面体,你可以进行一些奇妙的空间变换来达到这一点。

+

那么我们最后会多出一个底面。

+

因此在我们的这个圆中 $F(n)=E-V+1$

+

求 $V$

圆上已经有了 $n$ 个点。我们要使得圆内不存在三线共点的情况。

+

那么考虑每次选择四个顶点画出一个四边形的两条对角线。

+

于是又会生成 $C_{n}^{4}$ 个顶点。可以证明已经考虑完全了,于是有

+

求 $E$

原有 $C_{n}^{2}$ 条边,且圆环上的 $n$ 个点互相连接构成 $n$ 条边。

+

每多一个交点会增加两条多边形边。又有 $2\times C_{n}^{4}$ 条。

+

最后,我们展开这个逆天的柿子:

+

去 OEIS 上校验结果,正确。

+
作者

YttriumWillow

发布于

2023-10-27

更新于

2023-10-27

许可协议

评论

You forgot to set the shortname for Disqus. Please set it in _config.yml.
\ No newline at end of file diff --git "a/2023/10/27/\345\205\254\345\274\217\346\270\262\346\237\223\345\216\213\345\212\233\346\265\213\350\257\225/index.html" "b/2023/10/27/\345\205\254\345\274\217\346\270\262\346\237\223\345\216\213\345\212\233\346\265\213\350\257\225/index.html" index 8bbcb34..0dfe897 100644 --- "a/2023/10/27/\345\205\254\345\274\217\346\270\262\346\237\223\345\216\213\345\212\233\346\265\213\350\257\225/index.html" +++ "b/2023/10/27/\345\205\254\345\274\217\346\270\262\346\237\223\345\216\213\345\212\233\346\265\213\350\257\225/index.html" @@ -1,5 +1,5 @@ -公式渲染压力测试 - Yttr 的小站 +公式渲染压力测试 - Yttr 的小站
公式渲染压力测试

公式渲染压力测试

P8670 [蓝桥杯 2018 国 B] 矩阵求和 题解

前置芝士 / 题目

    +
    公式渲染压力测试

    公式渲染压力测试

    P8670 [蓝桥杯 2018 国 B] 矩阵求和 题解

    前置芝士 / 题目

    • $\gcd$ 的性质
    • 欧拉函数 $\varphi$ 及其性质
    @@ -62,7 +62,7 @@

    思路

    有了这个结论就可以愉快的刷多倍经验了。

    贴个代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    inline void Euler(i64 n)
    {
    phi[1] = 1;
    for (reg int i = 2; i <= n; ++i)
    {
    if (!prime[i]) prime[++prime[0]] = i, phi[i] = i - 1;
    for (reg int j = 1; j <= prime[0] && i * prime[j] <= n; ++j)
    {
    prime[i * prime[j]] = 1;
    if (!(i % prime[j])) {
    phi[i * prime[j]] = phi[i] * prime[j]; break; }
    else phi[i * prime[j]] = phi[i] * phi[prime[j]];
    }
    }
    for (reg int i = 1; i <= n; ++i)
    phisum[i] = phisum[i - 1] + phi[i];
    }

    int main()
    {
    Euler(n);
    for (reg i64 i = 1; i <= n; ++i)
    ans = (ans + ((i * i) % mod) * ((phisum[n / i] * 2 - 1) % mod) % mod) % mod;
    }
    -
    作者

    YttriumWillow

    发布于

    2023-10-27

    更新于

    2023-10-27

    许可协议

    You need to set install_url to use ShareThis. Please set it in _config.yml.

    评论

    You forgot to set the shortname for Disqus. Please set it in _config.yml.

    © 2023 YttriumWillow  Powered by Hexo & Icarus

    为💖发电

    十月 2023

    © 2023 YttriumWillow  Powered by Hexo & Icarus

    为💖发电

    © 2023 YttriumWillow  Powered by Hexo & Icarus

    为💖发电

    2023

    © 2023 YttriumWillow  Powered by Hexo & Icarus

    为💖发电

    © 2023 YttriumWillow  Powered by Hexo & Icarus

    为💖发电

    2023

    © 2023 YttriumWillow  Powered by Hexo & Icarus

    为💖发电

    © 2023 YttriumWillow  Powered by Hexo & Icarus

    为💖发电

    首先枚举暴力,肯定 T 飞,期望得分 30pts

    1
    2
    3
    4
    5
    6
    // #include <algorithm>
    for (reg int i = 1; i <= n; ++i)
    ans = (ans + (i * i) % mod) % mod;
    for (reg int i = 2; i <= n; ++i)
    for (reg int j = 1; j <= i - 1; ++j)
    ans += 2 * __gcd(i, j) * __gcd(i, j);

    不会用莫比乌斯反演,乱搞一下。
    类似的带 $\gcd$ 的结论:

    $[\gcd(i,j)=1]$ 不就是两者互质么,那么来个欧拉函数解决问题。

    参考 P2158 [SDOI2008] 仪仗队,排除掉重复计算。

    有了这个结论就可以愉快的刷多倍经验了。

    贴个代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    inline void Euler(i64 n)
    {
    phi[1] = 1;
    for (reg int i = 2; i <= n; ++i)
    {
    if (!prime[i]) prime[++prime[0]] = i, phi[i] = i - 1;
    for (reg int j = 1; j <= prime[0] && i * prime[j] <= n; ++j)
    {
    prime[i * prime[j]] = 1;
    if (!(i % prime[j])) {
    phi[i * prime[j]] = phi[i] * prime[j]; break; }
    else phi[i * prime[j]] = phi[i] * phi[prime[j]];
    }
    }
    for (reg int i = 1; i <= n; ++i)
    phisum[i] = phisum[i - 1] + phi[i];
    }

    int main()
    {
    Euler(n);
    for (reg i64 i = 1; i <= n; ++i)
    ans = (ans + ((i * i) % mod) * ((phisum[n / i] * 2 - 1) % mod) % mod) % mod;
    }
    ]]> + 简要题意

    连结圆上 $n$ 个点,求最多能够把圆分成几个部分。

    前置知识

    欧拉公式:$F(ace)=E(dge) - V(ertex)+2$

    人话:$\text{多边形面数} = \text{边数} - \text{顶点数} + 2$

    思路

    将一个圆折叠成一个多面体,你可以进行一些奇妙的空间变换来达到这一点。

    那么我们最后会多出一个底面。

    因此在我们的这个圆中 $F(n)=E-V+1$

    求 $V$

    圆上已经有了 $n$ 个点。我们要使得圆内不存在三线共点的情况。

    那么考虑每次选择四个顶点画出一个四边形的两条对角线。

    于是又会生成 $C_{n}^{4}$ 个顶点。可以证明已经考虑完全了,于是有

    求 $E$

    原有 $C_{n}^{2}$ 条边,且圆环上的 $n$ 个点互相连接构成 $n$ 条边。

    每多一个交点会增加两条多边形边。又有 $2\times C_{n}^{4}$ 条。

    最后,我们展开这个逆天的柿子:

    去 OEIS 上校验结果,正确。

    ]]>
    - <h1 id="P8670-蓝桥杯-2018-国-B-矩阵求和-题解"><a href="#P8670-蓝桥杯-2018-国-B-矩阵求和-题解" class="headerlink" title="P8670 [蓝桥杯 2018 国 B] 矩阵求和 题解"></a>P8670 + <h3 id="简要题意"><a href="#简要题意" class="headerlink" title="简要题意"></a>简要题意</h3><p>连结圆上 $n$ 个点,求最多能够把圆分成几个部分。</p> +<h3 id="前置知识"><a href="#前置知识" c - + diff --git a/categories/index.html b/categories/index.html index 2b03faf..bd5a0dc 100644 --- a/categories/index.html +++ b/categories/index.html @@ -1,5 +1,5 @@ -分类 - Yttr 的小站 +分类 - Yttr 的小站

    © 2023 YttriumWillow  Powered by Hexo & Icarus

    为💖发电

    © 2023 YttriumWillow  Powered by Hexo & Icarus

    为💖发电

    公式渲染压力测试

    公式渲染压力测试

    P8670 [蓝桥杯 2018 国 B] 矩阵求和 题解

    前置芝士 / 题目

      -
    • $\gcd$ 的性质
    • -
    • 欧拉函数 $\varphi$ 及其性质
    • -
    -

    前置题目:P2398 GCD SUM。

    -

    思路

    简要题意:求

    -

    首先枚举暴力,肯定 T 飞,期望得分 30pts

    -
    1
    2
    3
    4
    5
    6
    // #include <algorithm>
    for (reg int i = 1; i <= n; ++i)
    ans = (ans + (i * i) % mod) % mod;
    for (reg int i = 2; i <= n; ++i)
    for (reg int j = 1; j <= i - 1; ++j)
    ans += 2 * __gcd(i, j) * __gcd(i, j);
    -

    不会用莫比乌斯反演,乱搞一下。
    类似的带 $\gcd$ 的结论:

    +
    P5377 [THUPC2019] 鸽鸽的分割 题解

    P5377 [THUPC2019] 鸽鸽的分割 题解

    简要题意

    连结圆上 $n$ 个点,求最多能够把圆分成几个部分。

    +

    前置知识

    欧拉公式:$F(ace)=E(dge) - V(ertex)+2$

    +

    人话:$\text{多边形面数} = \text{边数} - \text{顶点数} + 2$

    +

    思路

    将一个圆折叠成一个多面体,你可以进行一些奇妙的空间变换来达到这一点。

    +

    那么我们最后会多出一个底面。

    +

    因此在我们的这个圆中 $F(n)=E-V+1$

    +

    求 $V$

    圆上已经有了 $n$ 个点。我们要使得圆内不存在三线共点的情况。

    +

    那么考虑每次选择四个顶点画出一个四边形的两条对角线。

    +

    于是又会生成 $C_{n}^{4}$ 个顶点。可以证明已经考虑完全了,于是有

    $[\gcd(i,j)=1]$ 不就是两者互质么,那么来个欧拉函数解决问题。

    -

    参考 P2158 [SDOI2008] 仪仗队,排除掉重复计算。

    +V = n + C_{n}^{4}

    求 $E$

    原有 $C_{n}^{2}$ 条边,且圆环上的 $n$ 个点互相连接构成 $n$ 条边。

    +

    每多一个交点会增加两条多边形边。又有 $2\times C_{n}^{4}$ 条。

    +

    最后,我们展开这个逆天的柿子:

    有了这个结论就可以愉快的刷多倍经验了。

    -

    贴个代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    inline void Euler(i64 n)
    {
    phi[1] = 1;
    for (reg int i = 2; i <= n; ++i)
    {
    if (!prime[i]) prime[++prime[0]] = i, phi[i] = i - 1;
    for (reg int j = 1; j <= prime[0] && i * prime[j] <= n; ++j)
    {
    prime[i * prime[j]] = 1;
    if (!(i % prime[j])) {
    phi[i * prime[j]] = phi[i] * prime[j]; break; }
    else phi[i * prime[j]] = phi[i] * phi[prime[j]];
    }
    }
    for (reg int i = 1; i <= n; ++i)
    phisum[i] = phisum[i - 1] + phi[i];
    }

    int main()
    {
    Euler(n);
    for (reg i64 i = 1; i <= n; ++i)
    ans = (ans + ((i * i) % mod) * ((phisum[n / i] * 2 - 1) % mod) % mod) % mod;
    }
    + F(n) &= E - V + 1 \\ + &= n + C_{n}^{2} + 2\times C_{n}^{4} - n - C_{n}^{4} + 1 \\ + &= C_{n}^{2} + C_{n}^{4} + 1 \\ + &= \dfrac{n(n - 1)}{2} + \dfrac{n(n - 1)(n - 2)(n - 3)}{4} + 1 \\ + &= \dfrac{x^4}{24} - \dfrac{x^3}{4} + \dfrac{23x^2}{24} - \dfrac{3x}{4} + 1 +\end{aligned}

    去 OEIS 上校验结果,正确。

    Test Article

    First

    Second

    Third

    Fourth

    Fifth
    Sixth
    1
    2
    3
    4
    5
    6
    7
    #include <iostream>
    using namespace std;
    int main()
    {
    cout << "Love You" << endl;
    return 0;
    }
    1
    print("Hello, Love from Yttr")


    $f(x) = x^2+x+1$

    -

    © 2023 YttriumWillow  Powered by Hexo & Icarus

    为💖发电

    + +
    P5377 [THUPC2019] 鸽鸽的分割 题解

    P5377 [THUPC2019] 鸽鸽的分割 题解

    简要题意

    连结圆上 $n$ 个点,求最多能够把圆分成几个部分。

    +

    前置知识

    欧拉公式:$F(ace)=E(dge) - V(ertex)+2$

    +

    人话:$\text{多边形面数} = \text{边数} - \text{顶点数} + 2$

    +

    思路

    将一个圆折叠成一个多面体,你可以进行一些奇妙的空间变换来达到这一点。

    +

    那么我们最后会多出一个底面。

    +

    因此在我们的这个圆中 $F(n)=E-V+1$

    +

    求 $V$

    圆上已经有了 $n$ 个点。我们要使得圆内不存在三线共点的情况。

    +

    那么考虑每次选择四个顶点画出一个四边形的两条对角线。

    +

    于是又会生成 $C_{n}^{4}$ 个顶点。可以证明已经考虑完全了,于是有

    +

    求 $E$

    原有 $C_{n}^{2}$ 条边,且圆环上的 $n$ 个点互相连接构成 $n$ 条边。

    +

    每多一个交点会增加两条多边形边。又有 $2\times C_{n}^{4}$ 条。

    +

    最后,我们展开这个逆天的柿子:

    +

    去 OEIS 上校验结果,正确。

    +

    © 2023 YttriumWillow  Powered by Hexo & Icarus

    为💖发电

    \ No newline at end of file diff --git a/tags/Test-Posts/index.html b/tags/Test-Posts/index.html index d7856e9..f0ccb71 100644 --- a/tags/Test-Posts/index.html +++ b/tags/Test-Posts/index.html @@ -31,42 +31,11 @@ switchTab(); window.addEventListener('hashchange', switchTab, false); })(); -
    公式渲染压力测试

    公式渲染压力测试

    P8670 [蓝桥杯 2018 国 B] 矩阵求和 题解

    前置芝士 / 题目

      -
    • $\gcd$ 的性质
    • -
    • 欧拉函数 $\varphi$ 及其性质
    • -
    -

    前置题目:P2398 GCD SUM。

    -

    思路

    简要题意:求

    -

    首先枚举暴力,肯定 T 飞,期望得分 30pts

    -
    1
    2
    3
    4
    5
    6
    // #include <algorithm>
    for (reg int i = 1; i <= n; ++i)
    ans = (ans + (i * i) % mod) % mod;
    for (reg int i = 2; i <= n; ++i)
    for (reg int j = 1; j <= i - 1; ++j)
    ans += 2 * __gcd(i, j) * __gcd(i, j);
    -

    不会用莫比乌斯反演,乱搞一下。
    类似的带 $\gcd$ 的结论:

    -

    $[\gcd(i,j)=1]$ 不就是两者互质么,那么来个欧拉函数解决问题。

    -

    参考 P2158 [SDOI2008] 仪仗队,排除掉重复计算。

    -

    有了这个结论就可以愉快的刷多倍经验了。

    -

    贴个代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    inline void Euler(i64 n)
    {
    phi[1] = 1;
    for (reg int i = 2; i <= n; ++i)
    {
    if (!prime[i]) prime[++prime[0]] = i, phi[i] = i - 1;
    for (reg int j = 1; j <= prime[0] && i * prime[j] <= n; ++j)
    {
    prime[i * prime[j]] = 1;
    if (!(i % prime[j])) {
    phi[i * prime[j]] = phi[i] * prime[j]; break; }
    else phi[i * prime[j]] = phi[i] * phi[prime[j]];
    }
    }
    for (reg int i = 1; i <= n; ++i)
    phisum[i] = phisum[i - 1] + phi[i];
    }

    int main()
    {
    Euler(n);
    for (reg i64 i = 1; i <= n; ++i)
    ans = (ans + ((i * i) % mod) * ((phisum[n / i] * 2 - 1) % mod) % mod) % mod;
    }
    -

    Test Article

    First

    Second

    Third

    Fourth

    Fifth
    Sixth
    1
    2
    3
    4
    5
    6
    7
    #include <iostream>
    using namespace std;
    int main()
    {
    cout << "Love You" << endl;
    return 0;
    }
    +

    Test Article

    First

    Second

    Third

    Fourth

    Fifth
    Sixth
    1
    2
    3
    4
    5
    6
    7
    #include <iostream>
    using namespace std;
    int main()
    {
    cout << "Love You" << endl;
    return 0;
    }
    1
    print("Hello, Love from Yttr")


    $f(x) = x^2+x+1$

    -

    © 2023 YttriumWillow  Powered by Hexo & Icarus

    为💖发电

    +标签 - Yttr 的小站

    © 2023 YttriumWillow  Powered by Hexo & Icarus

    为💖发电

    © 2023 YttriumWillow  Powered by Hexo & Icarus

    为💖发电