用户工具

站点工具


2020-2021:teams:no_morning_training:week2

这是本文档旧的修订版!


2020/05/09--2020/05/15


团队训练

王瑞琦


冯宇扬

比赛

cf round 639 div 1
由于网络条件问题不能进行实时比赛(真的每次一到比赛时间就血卡,白天都挺好)

专题

摸了


常程

专题

比赛

其实这一周和上一周也有打cf的比赛,但是和上学期线上训练比赛一样,由于我会的算法太少导致只会前1-2题或者都不会,因此一段时间内我会专注于学习算法。


本周推荐

王瑞琦

冯宇扬

常程

学了一点数学的东西。(几乎是从头学起,不过我觉得值得推荐,以后做点厉害的)

筛法

埃氏筛

思想

从每个素数出发,将其倍数都筛掉。

性能

每一个合数会被访问多次;复杂度$O(nloglogn)$。

代码

for(int i=2;i<=maxn;i++)
{
    if(!vist[i])
        for(int j=i*i;j<=maxn;j+=i)
            vist[j]=1;
}

线性筛(欧拉筛)

思想

对于每一个i,寻找素数使得与i的乘积中该素数为最小因子。由于每一个数的最小因子一定,该数就被唯一地访问。

性能

避免了重复访问;复杂度$O(n)$(?)。

代码

for(int i=2;i<=maxn;i++)
{
    if(!vist[i])
        prime[++t]=i;
    for(int j=1;j<=t&&i*prime[j]<=maxn;j++)
    {
        vist[i*prime[j]]=1;
        if(!(i%prime[j]))
            break;
    }
}

杜教筛、min_25筛、洲阁筛学到积性函数再补。

2020-2021/teams/no_morning_training/week2.1589547887.txt.gz · 最后更改: 2020/05/15 21:04 由 shaco