ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【蓝桥杯历年题】2020蓝桥杯A组省赛第三场

2021-04-12 15:32:55  阅读:313  来源: 互联网

标签:试题 int res 蓝桥 2020 && l1 l2 第三场


文章目录

试题 A: 数青蛙(模拟)

在这里插入图片描述

>答案:353

个位数一位;11~19以及10的倍数两位;其余情况三位

#include <iostream>

using namespace std;

int get(int x) 
{
    if(x >= 1 && x <= 10) return 1;
    else if((x >= 11 && x <= 20) || x == 30 || x == 40 || x == 50 || x == 60 || x == 70 || x == 80 ) return 2;
    else return 3;
}

int main()
{
    int res = 0;
    res += 10 * 20;
    
    for(int i = 1;i <= 20;i ++ ) res += get(i); // 第一个数字
    for(int i = 1;i <= 20;i ++ ) res += get(i); // 第二个数字
    for(int i = 2;i <= 40;i += 2 ) res += get(i); // 第一个数字
    for(int i = 4;i <= 80;i += 4 ) res += get(i); // 第一个数字
    
    cout << res << endl;
    
    return 0;
}

试题 B: 互质(最大公约数)

在这里插入图片描述

>答案:1008

#include <iostream>

using namespace std;

int gcd(int a,int b)
{
    return b ? gcd(b,a % b) : a;
}

int main()
{
    int res = 0;
    for(int i = 1;i <= 2020;i ++ ) 
        if(gcd(i,1018) == 1) res ++;
    
    cout << res << endl;
    
    return 0;
}

试题 C: 车牌(爆搜)

在这里插入图片描述

>答案:4002750

#include <iostream>

using namespace std;

int res;

void dfs(int u,int l1,int l2) // u表示搜到第几位,
    // 从0开始,l1表示上一位是多少,l2表示上2位是多少
{
    if(u == 6) {
        res ++;
        return;
    }
    
    if(u < 3)
    {
        for(int i = 0;i <= 15;i ++ ){
            if(i == l1 && i == l2 && l1 == l2) continue;
            dfs(u + 1,i,l1);
        }
    }else{
        for(int i = 0;i <= 9;i ++ ){
            if(i == l1 && i == l2 && l1 == l2) continue;
            dfs(u + 1,i,l1);
        }
    }
}

int main()
{
    dfs(0,-1,-1);
    
    cout << res << endl;
    
    return 0;
}

试题 D: Fibonacci 集合(多路归并)

在这里插入图片描述

>答案:41269

类似题 – 62. 丑数

#include <iostream>
#include <vector>

using namespace std;

vector<long long> q;

int main()
{
    q.push_back(1);
    q.push_back(2);
    q.push_back(3);

    int i =0,j = 0,k = 0;
    while(q.size() < 2020)
    {
        long long t = min(3 * q[i] + 2,min(5 * q[j] + 3,8 * q[k] + 5));
        q.push_back(t);
        
        if(3 * q[i] + 2 == t) i ++ ;
        if(5 * q[j] + 3 == t) j ++ ;
        if(8 * q[k] + 5 == t) k ++ ;
    }
    cout << q.back() << endl;
    
    return 0;
}

试题 E: 上升子串

在这里插入图片描述在这里插入图片描述

标签:试题,int,res,蓝桥,2020,&&,l1,l2,第三场
来源: https://blog.csdn.net/weixin_43154149/article/details/115617722

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有