首页 > 其他分享 >【题解】P8679 [蓝桥杯 2019 省 B] 填空问题 题解

【题解】P8679 [蓝桥杯 2019 省 B] 填空问题 题解

时间:2023-07-01 16:25:24浏览次数:59  
标签:26 int 题解 sum 蓝桥 ++ 2019 填空 dp

P8679 [蓝桥杯 2019 省 B] 填空问题 题解

题目传送门

欢迎大家指出错误并联系这个蒟蒻

更新日志

  • 2023-05-25 21:02 文章完成
  • 2023-05-27 11:34 文章通过审核
  • 2023-06-20 21:03 优化了文章代码格式

试题 A :组队

【解析】
本题是一道经典的 DFS 搜索题,每次对各号位的选手进行 DFS,找到各号位上有成绩的选手时再进行进一步搜索即可。
【程序】

#include <bits/stdc++.h>

using namespace std;

int team[20][6];
int max_sum;
bool vis[20];

void dfs(int u, int sum) {
    if (u > 5) {
        max_sum = max(max_sum, sum);
        return;
    }
    for (int i = 0; i < 20; i++) {
        if (!vis[i]) {
            vis[i] = true;
            dfs(u + 1, sum + team[i][u]);
            vis[i] = false;
        }
    }
}

int main() {
    freopen("team.txt", "r", stdin);
    for (int i = 0; i < 20; i++) {
        for (int j = 0; j < 6; j++) {
            cin >> team[i][j];
        }
    }
    dfs(1, 0);
    cout << max_sum;
    return 0;
}

【答案】
490

试题 B :年号字串

【解析】
该题的 A~Z 相当于二十六进制的 $26$ 个基,因此本题就转换成将 $2019$ 转成二十六进制数的问题。
【程序】

#include <bits/stdc++.h>

using namespace std;

char ch[26];
char ans[5];
int a, n = 2019;

int main() {
    for (int i = 0; i < 26; i++) {
        ch[i] = 'A' + i;
    }
    while (n) {
        int t = n % 26;
        n = n / 26;
        if (t == 0) {
            t += 26;
        }
        ans[a++] = ch[t - 1];
    }
    for (int i = a - 1; i >= 0; i--) {
        printf("%c", ans[i]);
    }
    return 0;
}

【答案】
BYQ

试题 C :数列求值

【解析】
该数列其实很容易让人联想到斐波那契数列,可以采用计算斐波那契数列的递推法进行计算。
【程序】

#include <bits/stdc++.h>

using namespace std;

int dp[20190324];

int main() {
    int i;
    dp[0] = dp[1] = dp[2] = 1;
    for (i = 3; i < 20190324; i++) {
        dp[i] = (dp[i - 1] + dp[i - 2] + dp[i - 3]) % 10000;
    }
    printf("%d", dp[i - 1]);
    return 0;
}

【答案】
4659

试题 D :数的分解

【解析】
本题可以枚举 $3$ 个数字,但是如果 $3$ 个数字都从 $1$ 枚举到 $2019$,则程序就会变得很复杂,我们应该主要解决以下 $2$ 个问题:
1、三数之和等于 $2019$。
2、解决重复情况。

对于情况 $1$,要满足 $i+j+k=2019$,其实 $i$ 和 $j$ 一旦确定,$k$ 的值就已经确定了,所以利用该式,定义的 $3$ 个变量可以变成 $i$、$j$、$2019-i-j$。
对于情况 $2$,要想使得 $3$ 个数字不重复,则只需要将这 $3$ 个数排序,保证排序后的序列是唯一的即可。
【程序】

#include <bits/stdc++.h>

using namespace std;

int judge(int a) {
    while (a != 0) {
        int t = a % 10;
        if (t == 2 || t == 4) {
            return 0;
        }
        a = a / 10;
    }
    return 1;
}

int main() {
    int sum = 0;
    for (int i = 1; i < 2019 / 3 + 1; i++) {
        if (judge(i)) {
            for (int j = i + 1; j < 2019 - i - j; j++) {
                if (judge(j)) {
                    if (judge(2019 - i - j)) {
                        sum++;
                    }
                }
            }
        }
    }
    printf("%d", sum);
    return 0;
}

【答案】
40785

试题 E :迷宫

【解析】
本题求步数最少的迷宫路径,即求最短路线。利用 DFS 搜索时回溯较多,容易“爆栈”,所以本题使用 BFS 求最优解即可。
【答案】
DDDDRRURRRRRRDRRRRDDDLDDRDDDDDDDDDDDDRDDRRRURRUURRDDDDRDRRRRRRDRRURRDDDRRRRUURUUUUUUULULLUUUURRRRUULLLUUUULLUUULUURRURRURURRRDDRRRRRDDRRDDLLLDDRRDDRDDLDDDLLDDLLLDLDDDLDDRRRRRRRRRDDDDDDRR

标签:26,int,题解,sum,蓝桥,++,2019,填空,dp
From: https://www.cnblogs.com/szyawa/p/17519444.html

相关文章

  • 【题解】P8741 [蓝桥杯 2021 省 B] 填空问题 题解
    P8741[蓝桥杯2021省B]填空问题题解题目传送门欢迎大家指出错误并联系这个蒟蒻更新日志2023-05-0923:19文章完成2023-05-0923:20通过审核2023-06-2021:03优化了文章代码格式试题A:空间【解析】本题考察计算机存储的基础知识,只要掌握空间存储的换算方法,就能......
  • 【题解】P8684 [蓝桥杯 2019 省 B] 灵能传输 题解
    P8684[蓝桥杯2019省B]灵能传输题解题目传送门欢迎大家指出错误并联系这个蒟蒻更新日志2023-06-2021:46文章完成【解析】本题涉及到了$3$种算法:前缀和,排序以及贪心(1)前缀和本题实际上要求通过某种灵能传输可以使得该序列的最大值最小。而由前缀和可知,当某一个前......
  • 【置顶】FZQOJ题解集(2023-07-01更新)
    #68.「NOIP2004」津津的储蓄计划题解题目传送门欢迎大家指出错误并联系这个蒟蒻更新日志2023-02-0117:20文章完成2023-02-0316:09文章审核通过2023-02-0422:15修改了注释2023-05-2709:27修改了$\LaTeX$2023-07-0115:45修改了代码题目知识点模拟题目分析......
  • 【置顶】luogu题解集(2023-07-01更新)
    P8679[蓝桥杯2019省B]填空问题题解题目传送门欢迎大家指出错误并联系这个蒟蒻更新日志2023-05-2521:02文章完成2023-05-2711:34文章通过审核2023-06-2021:03优化了文章代码格式试题A:组队【解析】本题是一道经典的DFS搜索题,每次对各号位的选手进行DFS,......
  • 【题解】#373. 「USACO1.1」Friday the Thirteenth 题解(2023-07-01更新)
    #373.「USACO1.1」FridaytheThirteenth题解题目传送门欢迎大家指出错误并联系这个蒟蒻更新日志2023-02-0117:20文章完成2023-02-0318:50文章审核通过2023-02-0319:17修改了注释2023-05-2520:25修改了$\LaTeX$2023-05-2520:32再次修改了$\LaTeX$,感谢ACRU......
  • 【题解】#105. 「USACO1.3」Ski Course Design 题解(2023-07-01更新)
    #105.「USACO1.3」SkiCourseDesign题解题目传送门欢迎大家指出错误并联系这个蒟蒻更新日志2023-02-0117:20文章完成2023-02-0316:09文章审核通过2023-02-0422:15修改了注释2023-05-1621:44修改了$\LaTeX$2023-07-0115:59修改了代码题目知识点模拟+搜索......
  • 【题解】#68. 「NOIP2004」津津的储蓄计划 题解(2023-07-01更新)
    #68.「NOIP2004」津津的储蓄计划题解题目传送门欢迎大家指出错误并联系这个蒟蒻更新日志2023-02-0117:20文章完成2023-02-0316:09文章审核通过2023-02-0422:15修改了注释2023-05-2709:27修改了$\LaTeX$2023-07-0115:45修改了代码题目知识点模拟题目分析......
  • CF1753 题解
    CF1753题解A首先我们发现,我们可以将序列一部分取反,将1变-1,-1变1的操作每次将总和增加2,所以如果初始和的绝对值为奇数则无解。我们发现,一段区间可以拆成若干个长度为2和1的小区间(+-+-+-+-....)变成(+-+-+-...)。我们假设初始都是长度为1的小区间,这时答案等于所有数的总和。我们......
  • P3975 [TJOI2015] 弦论 题解
    一、题目描述:给你一个长度为$n$的字符串,字符串由$26$个小写字母组成,求第$k$大的字串。给定参数$t$:$t=0:\位置不同的相同字串只算一个。$$t=1:\位置不同的相同字串算作多个。$若字串数量不足$k$个,输出$-1$。数据范围:$1\le......
  • 【js学习笔记十四】普通函数中的this指向问题解决方案_this
     目录前言导语 解决思路运行结果前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷导语歌谣歌谣......