第十二届蓝桥杯大赛软件杯省赛C/C++大学A组
除开J题外均有解答
yyd_s
这个作者很懒,什么都没留下…
展开
-
试题I 括号序列
题目链接:https://www.lanqiao.cn/courses/2786/learning/?id=280825题目解析:这是一道动态规划题合法的括号序列满足以下两个条件①从左往右数,任意一个位置的左括号数量均不少于右括号②从右往左数,任意一个位置的右括号数量均不少于左括号②也可表表述为:将整个括号序列翻转,并将左括号视作右括号,右括号视作左括号时,①仍然成立下面来谈谈①的实现:考虑到n个左括号的全排列只有一种,因此我们约定,仅在右括号的前面添加左括号显然最多添原创 2022-05-02 09:27:53 · 183 阅读 · 0 评论 -
试题H 左Children右兄弟
(吐槽:为什么不能使用‘孩’和‘子’这两个字)题目链接:https://www.lanqiao.cn/courses/2786/learning/?id=280825题目解析:典型的树形DP记dp[i]是以i结点为根的树的最大高度,则状态转移方程:dp[cur] = max(dp[cur],e[cur].size() + dp[next]);dp[cur] = 1 (当该结点没有子结点时)其中e[cur]记录了cur结点的所有子节点,next为其中的一个结点又1结点高度为0故原创 2022-05-02 09:29:39 · 137 阅读 · 0 评论 -
试题G 异或数列
题目链接:精选项目课程_IT热门课程_蓝桥云课课程 - 蓝桥云课题目解析:观察到:0异或某个数不变;1异或某个数,改变该数。因此优先考虑(二进制下)最高位的数首先统计,在给定的数中,各个位数的1的总和有多少个;从高位到低位,寻找第一个1的数量非0位若在该位1的数量为偶数,则看下一位(偶数个1与某数异或后该数不变);若在该位1的数量为1,则谁先抢到1谁赢;若在该位1的数量为大于1的奇数,对于先手的人来说,0的数量为奇数就抢不到最后一个1,输。反之则赢若所有位原创 2022-05-02 09:29:25 · 121 阅读 · 0 评论 -
试题F 砝码称重
题目链接:精选项目课程_IT热门课程_蓝桥云课课程 - 蓝桥云课题目解析:动态规划的考查(以背包dp为原型)。注意砝码可以放在左边和右边代码:(使用滚动数组节省空间)//#define local#include<cstdio>#include<iostream>using namespace std;typedef long long ll;const int MAXN=1e5+5;int dp[2][MAXN]={0};int w[MAXN];i原创 2022-05-02 09:29:13 · 115 阅读 · 0 评论 -
试题E 回路计数
题目链接:精选项目课程_IT热门课程_蓝桥云课课程 - 蓝桥云课题目答案:881012367360题目解析:状压dp的考查记dp[i][j]的意义为:已经去过的城市代表的集合数为i,最后一次去的城市为j的方案数,并且考虑到是从0(对应题目中教学楼编号为1)出发,显然 :(1 << j& i) == true && (1 << 0& i) == true;则状态转移方程:dp[i][j]= dp[i][j]+ dp[i...原创 2022-05-02 09:28:55 · 304 阅读 · 0 评论 -
试题D 路径
题目链接:精选项目课程_IT热门课程_蓝桥云课课程 - 蓝桥云课题目答案:1026637题目解析:最短路算法考查(此处采用Dijkstra算法)代码://#define local#include<cstdio>#include<iostream>#include<vector>#include<queue>#include<cmath>#define INF 0x3f3f3f3f#define MAXN 2022原创 2022-05-02 09:28:45 · 125 阅读 · 0 评论 -
试题C 货物排放
题目链接:https://www.lanqiao.cn/courses/2786/learning/?id=280825题目答案:2430题目解析:切入点是 n = L * W * H分别用i,j,k表示L,W,H,根据对称性可设:i <= j <= k;可得i满足的条件: i >= 1 && i * i * i <= n && n % i == 0j满足的条件:j >= i && i * j * j &l原创 2022-05-02 09:28:36 · 114 阅读 · 0 评论 -
试题B 直线
题目链接:https://www.lanqiao.cn/courses/2786/learning/?id=280825答案:40257题目解析:直线分为两部分:平行坐标轴和不平行坐标轴(的直线)对于平行坐标轴的直线,在结果里加上即可。对于不平行坐标轴的直线,利用直线的性质:对于(x1,y1)和(x2,y2),这两点确定的直线y=kx+b,各参数的值为:k = (y1 - y2) * 1.0 / (x1 - x2) ;(实际操作中需要让 (y1 - y2) 乘上 1.0的目的是使原创 2022-05-02 09:28:23 · 151 阅读 · 0 评论 -
试题A 卡片
题目链接:https://www.lanqiao.cn/courses/2786/learning/?id=280825答案:3181题目解析:按照题目要求直接编程即可但要注意终止条件本文以存在某个数的数量小于等于0时作为终止条件达到终止条件时,打印每个数的剩余数量若均为非负数,则答案就是达到终止条件对应的那个数否则,答案为达到终止条件对应的那个数减一代码://#define local#include<cstdio>#include<iost原创 2022-05-02 09:28:12 · 136 阅读 · 0 评论