首页 > 其他分享 >ACM notes

ACM notes

时间:2024-08-02 14:27:58浏览次数:7  
标签:gcd limits notes 个数 ACM flag nn sum

动态规划(DP)

树形DP

数学

位运算

异或

异或前缀和

\( s(n)为1到n的数的异或和 \)

\( s(n) = \begin{cases} 1 , ~~~ n \% 4 == 1 \\ 0 , ~~~ n \% 4 == 3 \\ n , ~~~ n \% 4 == 0 \\ n + 1 , ~~~ n \% 4 == 2 \\ \end{cases} \)

代码实现如下:

auto xorprefix = [&](ll n) {
    int flag = n % 4;
    if (flag == 0) {
        return n;
    } else if (flag == 1) {
        return 1;
    } else if (flag == 2) {
        return n + 1;
    } else if (flag == 3) {
        return 0;
    }
};

数论

简化公式

\( \sum\limits_{k = 1}^{n} k = \frac{n(n + 1)}{2} \)

\( \sum\limits_{k = 1}^{n} k^{2} = \frac{n(n + 1)(n + 2)}{6} \)

\( \sum\limits_{k = 1}^{n} k^{3} = (\sum\limits_{k = 1}^{n} k)^{2} = \frac{ n^{2} (n + 1)^{2} }{4} \)

裴蜀定理

\( 对于二元方程ax + by = c \)

\( 当且仅当c = gcd(a , b)时 \)

\( x , y 存在整数解 \)

\( 当c \neq gcd(a , b) \)

\( x , y 不存在整数解,但有非整数解 \)

推广:
\( 一定存在整数x , y , 满足ax + by = gcd(a , b) * n \)

再推广:
\( 一定存在整数\{ x_{i} \vert i \in [1 , n] \},满足 \)

\[\sum\limits_{i = 1}^{m} a_{i} x_{i} = gcd( \{ x_{i} \vert i \in [1 , n] \} ) \]

组合数学

排列组合

二项式定理

\[(x + y)^{a} = \sum\limits_{k = 0}^{\infty} C_{a}^{k} x^{k} y^{a - k} \]

\(\tbinom{n}{m} = C_{n}^{m}\)

容斥原理

例题:求分母不超过n的所有最简真分数的个数与他们的和 (n <= 1e6)

显然有:

\( ans = \sum\limits_{a = 1}^{n} \sum\limits_{b = 1}^{a} ([b < a] * [gcd(a , b) == 1]) \)

\( = (\sum\limits_{a = 1}^{n} \sum\limits_{b = 1}^{n} [gcd(a , b) == 1]) / 2 \)

那么只需求出n以内的互质对即可。即以1最大公约数的数对

由容斥原理可以得知,先找到所有以1公约数的数对,再从中剔除所有以1的倍数为公约数的数对,余下的数对就是以1最大公约数的数对。即f(k)=以1公约数的数对个数 - 以1的倍数为 公约数 的数对个数。

如此,最简真分数的个数就求好了,还需求出它们的和。

可以注意到,当(x,y)为互质时,(y-x,y)也互质。

那么有这些最简真分数的和就是它们的个数除以2。

代码实现如下:

    ll nn = 2e6;
    cin >> nn;
    vector<ll> f(nn + 1);// f[i] 表示 gcd == i 的情况有几种
    for (ll k = nn; k >= 1; k--) { 
        f[k] = (nn / k) * (nn / k);//以k为公约数的数对
        for (ll i = k + k; i <= nn; i += k) { //减去以k的倍数为公约数的数对
            f[k] -= f[i];
        }
    }
    ans1 = f[1] / 2;
    ans2 = (double)ans1 / 2.0;

    cout << ans1 << " " << ans2 << "\n";

卡特兰数

通项公式:

\[(1) H_{n} = C_{2n}^{n} - C_{2n}^{n - 1} \]

\[(2) H_{n} = \frac{1}{n + 1} C_{2n}^{n} \]

递推公式:

\[(3) H_{n} = \frac{4 n - 2}{n + 1} H_{n - 1} \]

Catalan 特征:

从(0,0)到(n,n),不越过对角线,即任何时候,向上走的步数不能超过向右走的步数。
一种操作数不能超过另一种操作数,或者两种操作数不能有交集,这些操作的方案数通常是卡特兰数

Catalan 应用:

1.一个有n个0和n个1组成的字串,且所有的前缀字串满足1的个数不超过0的个数。这样的字串个数是多少?
2.包含n组括号的合法运算式的个数有多少?
3.一个栈的进栈序列为1,2,3,~,n,有多少个不同的出栈序列?
4.n个结点可构造多少个不同的二叉树?
5.在圆上选择2n个点,将这些点成对连接起来使得所得到的n条弦不相交的方法数?
6.通过连结顶点而将n+2边的凸多边形分成n个三角形的方法数?

图论(graph)

弦图(chord)

最大独立集

https://oi-wiki.org/graph/chord/?query=最大独立集

最小生成树

need

DP
https://www.bilibili.com/video/BV1ir421T7ts/?spm_id_from=333.999.0.0&vd_source=31718b165e8ad5f16162c06a62707fe6

标签:gcd,limits,notes,个数,ACM,flag,nn,sum
From: https://www.cnblogs.com/Proaes/p/18338705

相关文章

  • August 1st, Java Study Notes,static&non-static method
    IfollowedthevideoandrecordedsomeofitMostoftheideasarealreadyinthecomments,andtoputitbluntly,theyarethetranslatedwordspublicclassdog{publicintweight;//dog没有一个固定的weight,所以我们不使用static定义weight//定......
  • 校内ACM比赛总结
    不知道该叫什么名字就叫CDQZPC吧前言本来是三个人组队,但是临时给我们拆成了两个人。题目是学长出的。Asmb学长出的题,暂时不会B是一道猫树分治的题,通过这个题我思考了很多,我想了很多的做法,但是在时间上都差一点点,基本上卡在\(1e9\)的规模,然后就想到了猫树分治,但是......
  • 7 .30 ACM总结
    放假前几天,老师让我们打一场ACM来放松一下(非常好,放松不一定,被压力了)C题C题是个非常水的搜索题,队友看一眼就秒了。写的时候出了一点小问题,但也调出来了,此时我们来到了第6(总共7队)。#include<bits/stdc++.h>#definelllonglongusingnamespacestd;constintN=1e3+5;......
  • ACM日常训练日记——7.29
    Atcoder训练EnoughArray高质量题,建议两个星期后重新去做,滑动窗口题,找连续子串的和大于k的数我一开始就直接想前缀和去做,但是没有考虑清楚连续的关系,只要到一个状态满足大于它的状态全部都满足然后关键的地方是每次找到以后,把最先进入的状态弹出,也就是说从1——k变成2——k......
  • ACM日常训练日记——7.26
    Atcoder训练PowerfulDiscountTickets我们只需要动态维护使最大的值变小即可,这里我采用multiset去记录,有相同元素存在,也可以采用优先队列去维护#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;lln,m;llv[100010];multiset<ll>st;multiset<ll......
  • 2024年暑假ACM集训第1场
    A:小青蛙跳台阶题目描述想必你应该做过这么一道题:一只小青蛙一次可以跳1级台阶,也可以一次跳2级台阶。求该青蛙跳上第N级台阶总共有多少种跳法?(假设小青蛙的初始位置是第0级台阶)现在小青蛙遇到了一点麻烦,因为其中有一级台阶是坏的,小青蛙不能跳到这一级。假设坏掉的这一级台阶......
  • 【提交ACM出版 | EI&Scopus检索稳定 | 高录用】2024年数字经济,区块链与人工智能国际学
    2024年数字经济,区块链与人工智能国际学术会议(DEBAI2024)为第五届大数据与社会科学国际学术会议(ICBDSS2024)的分会,将于2024年8月23-25日在中国-广州隆重举行。为了让更多的学者有机会参与会议分享交流经验。本次会议主要围绕“数字经济,区块链与人工智能等研究领域展开讨论......
  • ACM日常训练日记——7.25
    Atcoder训练Harlequin思维题博弈论,思考每一次怎么转化最优,存在两个答案说明f可以赢,打表发现当所有数字都是偶数时,答案为second,否则为first#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;intmain(){ lln; cin>>n; llans=0; vector<ll>v(......
  • ssl证书90天过期?保姆级教程——使用acme.sh实现证书的自动续期
    前言最近https到期了,想着手动更新一下https证书,结果发现证书现在的有效期只有90天,于是想找到一个自动更新证书的工具,发现了acme.sh,但是网上的文章质量参差不齐,可能需要多篇文章结合来操作,一步步试错。我这里结合了腾讯云的相关文档和一些其他的博文,保证一次性操作成功。下载acme.......
  • 【ACM出版】2024年云计算与大数据国际学术会议(ICCBD 2024,7月26-28)
    2024年云计算与大数据国际学术会议(ICCBD2024)将于2024年7月26-28日在中国大理召开。ICCBD2024将围绕“云计算与大数据”的最新研究领域,旨在为从事研究的专家、学者、工程师和技术人员提供一个国际平台,分享科研成果和尖端技术,了解学术发展趋势,拓宽研究思路,加强学术研......