zoukankan      html  css  js  c++  java
  • 2019年第十届蓝桥杯大赛软件类省赛C/C++大学B组

    试题 A:组队

    本题总分:5分
    【问题描述】
    作为篮球队教练,你需要从以下名单中选出 1号位至 5号位各一名球员,
    组成球队的首发阵容。
    每位球员担任 1号位至 5号位时的评分如下表所示。请你计算首发阵容 1
    号位至5号位的评分之和最大可能是多少?

    答案:490(该题需考虑清楚,一个人不能担任两个位置,98+99+98+97+98=490)

    试题 B:年号字串
    本题总分:5分
    【问题描述】
    小明用字母 A对应数字 1,B对应 2,以此类推,用 Z对应 26。对于 27
    以上的数字,小明用两位或更长位的字符串来对应,例如 AA对应27,AB对
    应28,AZ对应52,LQ对应329。
    请问2019对应的字符串是什么?
    答案:BYQ
    (该题我做的时候是直接算了2019/26=77,AZ是52,所以BY对应77,2019%26=17,Q为17,所以答案为BYQ)
    但该题考查的是26进制,代码如下
    #include<iostream>
    #include<cstdio>
    using namespace std;
    int main(){
        int x = 2019;
        while(x){
            printf("%c", char(x%26+64));
            x/=26;
        }
        return 0;
    }
    //结果取反

     

    试题c:数列求值

    本题总分:10分
    【问题描述】
    给定数列1,1,1,3,5,9,17,…,从第4项开始,每项都是前3项的和。求
    第20190324项的最后4位数字

    答案:4659

    #include<iostream>
    #include<cstdio>
    using namespace std;
    int main(){
        int a, b, c, d;
        a = b = c = 1;//前三项 
        for(int i = 4; i <= 20190324; i++){
            d = (a+b+c)%10000;//控制后四位数 
            a = b;
            b = c;
            c = d;
        }
        printf("%d
    ", d);
        return 0;
    }
    试题 D:数的分解
    本题总分:10分
    【问题描述】
    把 2019分解成 3个各不相同的正整数之和,并且要求每个正整数都不包
    含数字2和4,一共有多少种不同的分解方法?
    注意交换 3个整数的顺序被视为同一种方法,例如 1000+1001+18和
    1001+1000+18被视为同一种。
     
    #include<cstdio>
    #include<algorithm> 
    #include<iostream>
    using namespace std;
    bool check(int x)    //判断是否有2,4 
    {
        while(x)
        {
            if(x%10==2||x%10==4)
               return true;    
            x/=10;
        }
        return false;
    }
    int main()
    {
        int cnt=0;
        for(int i=1;i<=2019;i++)
        {
            if(check(i)) continue;
            for(int j=i+1;j<=2019;j++)
            {
                if(check(j)) continue;
                int k=2019-i-j;
                if(k<=i||k<=j||check(k))continue;
                cnt+=1;
            }
         } 
         cout<<cnt<<endl;
         return 0;
    } 

    其中i,j,k分别为三个整数,逐个模拟,边模拟边判断是否有数字2和4;

    试题 F: 特别数的和
    时间限制: 1.0s 内存限制: 256.0MB 本题总分:15 分
    【问题描述】
    小明对数位中含有 2、0、1、9 的数字很感兴趣 (不包括前导 0)  ,在 1 到
    40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。
    请问,在 1 到 n 中,所有这样的数的和是多少?
    【输入格式】
    输入一行包含两个整数 n。
    【输出格式】
    输出一行,包含一个整数,表示满足条件的数的和。
    【样例输入】
    40
    【样例输出】
    574
    【评测用例规模与约定】
    对于 20% 的评测用例,1 ≤ n ≤ 10。
    对于 50% 的评测用例,1 ≤ n ≤ 100。
    对于 80% 的评测用例,1 ≤ n ≤ 1000。
    对于所有评测用例,1 ≤ n ≤ 10000。
     
    #include<cstdio>
    #include<algorithm> 
    #include<iostream>
    using namespace std;
    int main()
    {
        int n,sum=0;
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            if(i%10==1||i/10==1||i%10==2||i/10==2||i%10==9||i/10==9||i%10==0)
              sum+=i;
        }
        cout<<sum<<endl;
    }

    试题 H: 等差数列
    时间限制: 1.0s 内存限制: 256.0MB 本题总分:20 分
    【问题描述】
    数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一
    部分的数列,只记得其中 N 个整数。
    现在给出这 N 个整数,小明想知道包含这 N 个整数的最短的等差数列有
    几项?
    【输入格式】
    输入的第一行包含一个整数 N。
    第二行包含 N 个整数 A 1 ,A 2 ,··· ,A N 。(注意 A 1 ∼ A N 并不一定是按等差数
    列中的顺序给出)
    【输出格式】
    输出一个整数表示答案。
    【样例输入】
    5
    2 6 4 10 20
    【样例输出】
    10
    【样例说明】
    包含 2、6、4、10、20 的最短的等差数列是 2、4、6、8、10、12、14、16、
    18、20。
     
    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    const int maxn = 1e5+10;
    int w[maxn];
    int ans[maxn];
    int main(){
        int n;
        scanf("%d", &n);
        for(int i = 1; i <= n; i++){
            scanf("%d", &w[i]);
        }
        if(w[1]==w[2])   //常数列的情况 
        {
            printf("%d", n);
            return 0;
        }
        sort(w+1, w+n+1);//先排序,从小到大 
        for(int i = 1; i < n; i++){
            ans[i] = w[i+1]-w[i];     //依次算出两数之差 
        }
        int G = ans[1];
        for(int i = 2; i <= n-1; i++){
            G = gcd(G, ans[i]);
        }
        printf("%d
    ", (w[n]-w[1])/G+1);
        return 0;
    } 

    emmmmm。。。。。。就先写这几道题吧,毕竟还是小菜一只,等我弄懂其他的再补吧。

    总之这次比赛很粗心,水题都没做对更别说其他的了,不过我会努力的。

  • 相关阅读:
    Python之sys & os
    1161
    1142
    P1599 货币
    P1547逆转,然后再见
    P1629八
    P1753HackSon的趣味题
    Problem 2233 ~APTX4869
    1269
    1091. Tmutarakan Exams
  • 原文地址:https://www.cnblogs.com/ylrwj/p/10628766.html
Copyright © 2011-2022 走看看