
蓝桥杯
不太聪明的样子
这个作者很懒,什么都没留下…
展开
-
蓝桥杯-算法提高-求最大值(C/C++)
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 给n个有序整数对ai bi,你需要选择一些整数对 使得所有你选定的数的ai+bi的和最大。并且要求你选定的数对的ai之和非负,bi之和非负。 输入格式 输入的第一行为n,数对的个数 以下n行每行两个整数 ai bi 输出格式 输出你选定的数对的ai+bi之和 样例输入5-403 -625-847 901-624 -708-293 413886 709样例输出1715数据规模和约定1&l原创 2021-04-10 20:01:39 · 499 阅读 · 0 评论 -
蓝桥杯-历届试题-波动数列(C/C++)
观察这个数列:1 3 0 2 -1 1 -2 …这个数列中后一项总是比前一项增加2或者减少3,且每一项都为整数。栋栋对这种数列很好奇,他想知道长度为 n 和为 s 而且后一项总是比前一项增加 a 或者减少 b 的整数数列可能有多少种呢?输入格式共一行,包含四个整数 n,s,a,b,含义如前面所述。输出格式共一行,包含一个整数,表示满足条件的方案数。由于这个数很大,请输出方案数除以 100000007 的余数。数据范围1≤n≤1000,−1e9≤s≤1e9,1≤a,b≤1e6输入样例原创 2021-03-10 17:52:49 · 448 阅读 · 0 评论 -
蓝桥杯-历届试题-地宫取宝(C/C++)
记忆化搜索暴力搜索的途中会经过很多重复的结点,这导致的普通dfs的超时,因此我们可以用一个备忘录来记录每个状态是否求解过了,当重复搜索到同一状态时,我们就可以直接返回而不必重复相同的递归操作了,这样就大量节省时间复杂度。备忘录的定义:根据题意,我们需要知道4个状态,即当前的位置(i, j),以及当前拿了多少件宝物和最近拿的宝物的价值c因此备忘录是一个四维数组:memo[i][j][k][c]根据要求,memo数组的值应该表示从(i, j, k, c)这个状态走到终点的合法方案数细节问题:由于本题原创 2021-03-09 14:27:41 · 427 阅读 · 0 评论 -
蓝桥杯-历届试题-幸运数
考点:链表模拟根据题意,每一轮都需要删除题目要求的数,然后将剩余的数连起来,序号重新规划,因此我们可以想到链表这一数据结构,可以实现O(1)的时间复杂度的删除操作,可以发现,除了第一次要求删除序号为2的倍数的结点以外,其余的都是要求删除序号为最后一个幸运数的值的倍数的结点。每一轮我们可以删除若干个节点,以此类推,直到不能再删除了为止。考虑到题意,我们可以剪枝判断,当前最后一个幸运数如果大于等于n的话我们就不用再去管后面的数了。这个算法的时间复杂度为O(nlogn),题目的数据范围是m < n <原创 2021-02-23 00:42:25 · 224 阅读 · 0 评论 -
蓝桥杯-算法提高-递推求值(C/C++)
考点:矩阵快速幂,确定矩阵递推公式#include <iostream>#include <cstring>using namespace std;typedef long long LL;LL n, mod = 99999999;LL a[7][7] = { {0, 1, 0, 0, 2, 0, 5}, {1, 0, 0, 0, 3, 2, 3}, {1, 0, 0, 0, 0, 0, 0},原创 2021-02-01 21:59:09 · 362 阅读 · 1 评论