第十一届蓝桥杯国赛

Posted 中二病没有蛀牙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十一届蓝桥杯国赛相关的知识,希望对你有一定的参考价值。

A

在这里插入图片描述
答案:563
代码:

#include <bits/stdc++.h>
using namespace  std;

int check(int x)
{
    while(x > 0){
        int a = x%10;
        if(a == 2) return 1;
        x /= 10;
    }
    return 0;
}
int main()
{
    int ans = 0;
    for(int i = 1; i<= 2020;i++){
        if(check(i))
            ans++;
    }
    cout<<ans<<endl;
}

B

在这里插入图片描述

C

在这里插入图片描述

答案:39001250856960000

思路:分解质因数,然后约数求和公式

#include <bits/stdc++.h>
using namespace  std;
#define  INF 0x3f3f3f3f
const int maxn = 10005;
typedef long long ll;

int p[maxn];
int main()
{
    for(int i = 2;i <= 100;i++){
        int n = i;
        for(int j = 2 ;j <= n / j;j++){
            while(n % j == 0){
                p[j]++;
                n /= j;
            }
        }
        if(n > 1)
            p[n]++;
    }
    // cout<<sum<<endl;;
    ll ans = 1;
    // for(auto i :mp){
    //     cout<<prime[i]<<",";
    //     ans = ans * ll(prime[i]+1); 
    // }
    for(int i = 2; i <= 100; i++)
        if(p[i]){
            ans *= (p[i] + 1);
            cout<<ans<<endl;
        }
    cout<<ans<<endl;
    return 0;
}

D

在这里插入图片描述

E

在这里插入图片描述

答案:552

#include <bits/stdc++.h>
using namespace  std;
#define  INF 0x3f3f3f3f
const int maxn = 10005;
typedef long long ll;

int f[maxn][maxn];
int vis[maxn][maxn];
int ans = 0;

void dfs(int x,int y,int l){
    if(x < 0 || x >= 4 || y < 0 || y >= 4) return;
    if(vis[x][y]) 
        return;
    if(l == 16){ 
        ans++;
        return ;
    }
    vis[x][y] = 1;
    dfs(x + 1,y,l+1);
    dfs(x,y+1,l + 1);
    dfs(x - 1,y,l + 1);
    dfs(x,y - 1,l + 1);
    vis[x][y] = 0;
}
int main()
{
    for(int i = 0; i < 4; i++)
        for(int j = 0; j < 4; j++){
            dfs(i,j,1);
        }
    cout<<ans<<endl;
    return 0;
}

G

在这里插入图片描述

最长上升子序列+路径输出

#include <bits/stdc++.h>
using namespace  std;
#define  INF 0x3f3f3f3f
const int maxn = 10005;
typedef long long ll;

set<string> st;
vector<string> a;
string vis[maxn];
int f[maxn];
int la[maxn];
stack<string> fans;
int main()
{
    string s,ss;
    cin>>s;
    ss= "";
    ss += s[0];
    for(int i = 1;i < s.length();i++){
        if( s[i] >= 'A' && s[i] <= 'Z'){
            st.insert(ss);
            a.push_back(ss);
            ss = ""; 
        }
        ss += s[i];
    }
    st.insert(ss);
    a.push_back(ss);
    int n =st.size();
    // for(auto i : st){
    //     // vis[++n] = i;
    //     cout<<i<<endl;
    // }
     int ans = 0,k = 0;
    for(int i = 0;i < n; i++){
        f[i] = 1;
        for(int j = 0;j < i ;j++){
            if(a[j] < a[i]){
                if(f[j] + 1> f[i]){
                    // cout<<a[j] <<" "<<a[i]<<endl;
                    // cout<<a[i]<<endl;
                    la[i] = j;
                    f[i] = f[j] + 1;
                    if(ans < f[i]){
                        ans = f[i];
                        k  =i;
                    }
                }
            }
            // cout<<f[j]<<" ";

        } 
        // cout<<endl;
    }
    // cout<<ans<<" "<<k<<endl;
    for (int i = 0;i < ans; ++i)
    {
        fans.push(a[k]);
        k = la[k];
    }
    while (!fans.empty())
    {
        cout<<fans.top();
        fans.pop();
    }
    cout<<endl;
    // cout<<ans[n-1]<<endl;
    return 0;
}

H

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

以上是关于第十一届蓝桥杯国赛的主要内容,如果未能解决你的问题,请参考以下文章

第十三届蓝桥杯国赛真题 PythonB组 复盘以及获奖感言(国一!!!)

2020年第十一届蓝桥杯国赛个人题解

蓝桥杯国赛真题16Scratch昼夜交替 少儿编程scratch蓝桥杯国赛真题和答案讲解

蓝桥杯国赛真题17Scratch小瓢虫找妈妈 少儿编程scratch蓝桥杯国赛真题和答案讲解

第十二届蓝桥杯国赛总结

2021软件类第十二届蓝桥杯国赛真题 Python组 A-E题解