zoukankan      html  css  js  c++  java
  • 2020第十一届蓝桥杯软件类省赛第二场C/C++ 大学 B 组 填空题题解(未拿省一的个人反思)

    试题 A: 门牌制作

    【问题描述】
    小蓝要为一条街的住户制作门牌号。
    这条街一共有 2020 位住户,门牌号从 1 到 2020 编号。
    小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需要将字
    符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、 0、 1、 7,即需要 1 个
    字符 0, 2 个字符 1, 1 个字符 7。
    请问要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2?

    答案:

    624

    试题 B: 既约分数

    【问题描述】
    如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数。
    例如,都是既约分数。

    请问,有多少个既约分数,分子和分母都是 1 到 2020 之间的整数(包括 1
    和 2020)?

    解析:

    直接调用__gcd(),gcd==1即++

    答案:

    2481215

    试题 C: 蛇形填数

    如下图所示,小明用从 1 开始的正整数“蛇形”填充无限大的矩阵。
    1 2 6 7 15 :::
    3 5 8 14 :::
    4 9 13 :::
    10 12 :::
    11 :::
    :::

    容易看出矩阵第二行第二列中的数是 5。请你计算矩阵中第 20 行第 20 列
    的数是多少 ?

    答案:

    761

    反思:

    这次比赛,我败在了这个题上。当然不能怪它,这的确是个好题,怪我自己的临场发挥不行。

    由于怕推导公式出错,我进行了模拟,但是由于坐标多加多减以及其他问题,调试了长达一个半小时。直接导致心态爆炸,七数码没空做,大题草草了事,很是后悔。

    赛后,五分钟连写带调,出结果。果然,心态,还得练。

    #include<iostream>
    #include<cstring>
    #include<algorithm>
    #include<cmath>
    using namespace std;
    int m[111][111];
    int main()
    {
        int cnt=2;
        int ok=0;
        int ans=2;
        int x=1,y=2;m[1][1]=1;
        while(x<=50&&y<=50)
        {
            if(!ok)
            {
    
                for(int i=1;i<=ans;i++)
                {
                    m[x][y]=cnt;
                    cnt++;
                    x++;y--;
                }
                x--;y++;
                x+=1;
                ok=1;
            }
            else
            {
                for(int i=1;i<=ans;i++)
                {
                    m[x][y]=cnt;
                    cnt++;
                    x--;
                    y++;    
                }
                x++;
                y--;
                y++;
                ok=0;
            }
            ans++;
        }
        cout<<m[20][20];
    //    for(int i=1;i<=30;i++)
    //    {
    //        for(int j=1;j<=30;j++)
    //            cout<<m[i][j]<<" ";
    //            cout<<endl;
    //    }
    }

    试题 D: 跑步锻炼

    【问题描述】
    小蓝每天都锻炼身体。
    正常情况下,小蓝每天跑 1 千米。如果某天是周一或者月初(1 日),为了
    激励自己,小蓝要跑 2 千米。如果同时是周一或月初,小蓝也是跑 2 千米。
    小蓝跑步已经坚持了很长时间,从 2000 年 1 月 1 日周六(含)到 2020 年
    10 月 1 日周四(含)。请问这段时间小蓝总共跑步多少千米?

    答案:

    8879

    反思:

    2020 9 30之前的全模拟算对了,但是在10月1出了差错,明明是1号应该+2,但是我+1。真的很想给自己一巴掌。

    试题 E: 七段码

    【问题描述】
    小蓝要用七段码数码管来表示一种特殊的文字。

    上图给出了七段码数码管的一个图示,数码管中一共有 7 段可以发光的二 极管,分别标记为 a, b, c, d, e, f, g。
    小蓝要选择一部分二极管(至少要有一个)发光来表达字符。在设计字符 的表达时,要求所有发光的二极管是连成一片的。
    例如: b 发光,其他二极管不发光可以用来表达一种字符。
    例如: c 发光,其他二极管不发光可以用来表达一种字符。这种 方案与上 一行的方案可以用来表示不同的字符,尽管看上去比较相似。
    例如: a, b, c, d, e 发光, f, g 不发光可以用来表达一种字符。
    例如: b, f 发光,其他二极管不发光则不能用来表达一种字符,因为发光 的二极管没有连成一片。
    请问,小蓝可以用七段码数码管表达多少种不同的字符?

    另外写了篇较为详细的题解:

    https://www.cnblogs.com/liyexin/p/13893257.html

    由于很多评测网站还没有上线本次大题。先写到这儿吧。

  • 相关阅读:
    Codeforces Round #352 (Div. 1) B. Robin Hood 二分
    Codeforces Round #352 (Div. 1) A. Recycling Bottles 暴力
    Codeforces Round #352 (Div. 2) B. Different is Good 水题
    Codeforces Round #352 (Div. 2) A. Summer Camp 水题
    Codeforces Round #351 (VK Cup 2016 Round 3, Div. 2 Edition) D. Bear and Two Paths 构造
    Codeforces Round #351 (VK Cup 2016 Round 3, Div. 2 Edition) C. Bear and Colors 暴力
    Codeforces Round #351 (VK Cup 2016 Round 3, Div. 2 Edition) B. Problems for Round 水题
    Codeforces Round #351 (VK Cup 2016 Round 3, Div. 2 Edition) A. Bear and Game 水题
    Codeforces Beta Round #97 (Div. 1) C. Zero-One 数学
    Codeforces Beta Round #97 (Div. 1) B. Rectangle and Square 暴力
  • 原文地址:https://www.cnblogs.com/liyexin/p/13893340.html
Copyright © 2011-2022 走看看