首页 > 其他分享 >蓝桥杯培训

蓝桥杯培训

时间:2022-11-21 08:56:47浏览次数:29  
标签:约数 培训 合数 else 蓝桥 二段 ans 区间

素数

  • 素数:a > 1 且只能被平凡约数整除的数

  • 合数:a > 1 且不是素数的数称为合数

  • 平凡约数:a 的平凡约数就是1 和a 本身

  • 因子:a 的非平凡约数为 称为a 的因子, 如20 的因子有,2, 4, 5, 10

  • 也就是 20 = 2 * 10, 20 = 4 * 5

埃氏筛法

  • 从小到大枚举每个数,如果当前数厄密划掉,必是素数,记录该质数,枚举当前质数的倍数,必是合数,划掉合数

  • 代码:

typedef long long ll;

const int N = 100000010;
bool st[N];  //状态

void eratos(int n){

    for (ll i = 2; i <= n; i ++) st[i] = true;

    for (ll i = 2; i <= n/2; i ++){
        if (st[i]){
            for (ll j = i * i; j <= n; j += i){
                st[j] = false;
            }
        }
    }
}

二分

  • 二分思想:

  • 1. 确定一个区间,使得目标值一定在区间中
  • 2. 找一个性质,满足两点:
    • a. 性质具有二段性:前面连续的一段是满足的,后面连续的一段是不满足的,中间是无缝隙衔接的,这样就具有二段性
    • b. 答案是二段性的分界点

整数二分

  • 两大类:一类是二分值处理下面ans,一类是处理上面ans

  • 第一类:目标值(ans)是红色区间的右端点

  • 将[L, R] 分为 [L, M - 1] 和 [M, R]
    整数二分第一类模板

if (M 是红色的){
    //说明答案(ans) 仍然在 [M, R]
}
else {
    //说明答案(ans) 必然在 [L, M - 1]
}
  • 代码

while(L < R){
    M = (L + R + 1) / 2;

    if (M 为红色) L = M;
    else R = M - 1;
}
  • 如果 M = (L + R + 1) / 2; 不补上1, M =(L + R) / 2

L = R - 1;

M = (L + R) / 2 = L;

if (M 为红色) L = M = L;

//这样就会一直死循环
  • 第二类:目标值(ans)是绿色区间的左端点

  • 将 [L, R] 分为 [L, M] 和 [M + 1, R]
    整数二分大二类
if (M 是绿色){
    说明ans 在[L, M];
}
else{
    ans 必然是在[M + 1, R];
}
  • 代码

while(L < R){
    
    M = (L + R) / 2;

    if (M 是绿) R = M;
    else L = M + 1;
}
  • 第二类不用写M = (L + R + 1) / 2;

  • L = R - 1;

  • M = (L + R) / 2 = L;

  • if 成立R = M = L, 跳出循环

  • else L = M + 1 = L + 1 = R;

  • 整数二分步骤:

    1. 找一个区间[L, R], 使得答案一定在该区间中
    1. 找一个判断性条件,使得该判断条件具有二段性,并且答案一定是该二段性的分界点
    1. 分析终点M 在该判断条件下是否成立,如果成立,考虑答案在哪个区间;如果不成立,考虑答案在哪个区间
    1. 如果更新方式写的是R = Mid,则不用做任何处理;如果更新方式写的是L = Mid,则需要在计算Mid 时加上1

标签:约数,培训,合数,else,蓝桥,二段,ans,区间
From: https://www.cnblogs.com/xgc030920/p/16910287.html

相关文章

  • 蓝桥杯-算法训练-和为T
    知识预备-二进制枚举详细讲解:https://sugar.blog.csdn.net/article/details/81099340?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~d......
  • 蓝桥杯_每日一题Day7
    13届蓝桥杯1024PC04:给定一个正整数N,将1到N之间(包含1和N)的正整数按偶数递增、奇数递减的顺序排列输出。(先输出偶数,再输出奇数)例如:给定正整数为5,1到5之间偶数有2、4,按偶数递......
  • 蓝桥杯_每日一题Day6
    13届蓝桥杯1024PC03:输入:一个只包含大小写字母的字符串输出:将字符串全部变为大写字母,然后逆序(反向)输出样例输入:aCb样例输出:BCA1.大写upper()返回:'''大写、字符串排......
  • 煤矿安全设备认知仿真教学实现形象高效、专业的技能培训-深圳华锐视点
    技术日新月异,煤矿开采也从传统人工转为半机械操作,分为探测、采煤、掘进和钻凿等过程,因此煤矿工人在上岗作业前对常见的煤矿设备需要具备一定的认知、操作和维修知识技......
  • 蓝桥杯_每日一题Day2
    12届蓝桥杯第五题:输入描述:输入三个正整数X,Y,M(X<Y<M),X和Y表示有毒气密室编号,M表示需要进入的密室编号,且三个正整数之间以英文逗号隔开,每次可前进一间或两间密室(非毒气)输出描......
  • 蓝桥杯_每日一题Day1
    12届蓝桥杯-第四题:输入:一串乱序数字(以英文逗号隔开)输出:非最小或最大的数,输入中非连续的数样例输入:3,2,4,6,7样例输出:51.分割字符串函数split():str.split(str="",num=......
  • CDGA数据治理工程师认证教程视频笔记真题答案下载 CDGA培训视频考试题库备考2023必过
     一、前言 1、关于DAMA国际数据管理协会(DAMA国际)是一个全球性的专业组织(类似于PMP证书的PMI项目管理协会),由数据管理和相关的专业人士组成,协会自1980年成立以来,一直致力......
  • 上海专业萨克斯陶笛培训
    教学方式网课:一对一/45分钟/150元/节线下:徐汇华东理工大附近/45分钟/300元/节  上门教学/45分钟/300元+100元路费/节培训内容上音萨克斯考级:1-10级、演奏级......
  • 广州华锐互动:vr模拟电力场景安全应急培训,为电力行业保驾护航
    近年来,电力行业得到快速发展,这对于电力安全管理提出了更高的要求,只有把电力安全管理工作做好,才能促进电力行业的健康发展。目前电力生产安全事故并不少见,这也反映了电力行......
  • 老男孩培训 | 大厂专家TiDB企业级实战课程,仅限前20名,速抢有惊喜!
    为什么要学习TiDB?俄乌战争,美国停掉俄罗斯数据库授权,结果导致俄罗斯企业损失惨重。我国很多高科技企业也是频繁被美国卡脖子,随着中国走国产化独立自主的路线,国产数据库厂......