试题G 外卖店优先级 题目链接:精选项目课程_IT热门课程_蓝桥云课课程 - 蓝桥云课题目解析:根据题意进行模拟即可代码:#define local#include<cstdio>#include<iostream>#include<vector> typedef long long ll;using namespace std;#define MAXN 100005vector<int>e[MAXN];int p[MAXN]={0},s[
试题H 修改数组 题目链接:精选项目课程_IT热门课程_蓝桥云课课程 - 蓝桥云课题目解析:①可以使用桶算法,用vis数组标记一个数是否被使用,时间复杂度最坏为o(n^2),能得80%的分数②使用并查集,每次将原来的数a[i]替换为find(a[i]);每次使用一个数(即find(a[i])),将其并入该数+1的集合中,复杂度o(nlog(n))代码(②)://#define local#include<cstdio>#include<iostream>usi.
试题F:完全二叉树的权值 题目链接:精选项目课程_IT热门课程_蓝桥云课课程 - 蓝桥云课题目解析:考查完全二叉树的基本性质——第i个数对应的是log(i)+1层代码://#define local#include<cstdio>#include<iostream>#include<cmath> using namespace std;typedef long long ll;#define MAXN 100001int v[MAXN];ll sum[20]={0.
试题C 最大降雨量 题目链接:https://www.lanqiao.cn/courses/2786/learning/?id=67813答案:34解析:个人觉得这道题就是考观察能力,想通了就觉得特别简单。这道题的关键点是:至少有多少个数比所求值大。首先,对七个中位数来说,有3个比所求值大。所求值所在的那一周,有且只有3个数比所求值大。而对于每一个大于所求值的中位数所在的周来说,在该周中有4数个比该中位数大,即在该周中至少有4个数比所求值大。因此,至少有3+4+4+4=15个数比所求值大,因此,所求
试题E RSA解密 题目链接:https://www.lanqiao.cn/courses/2786/learning/?id=67813答案:579706994112328949解析及代码:先用暴力法求p,q(即for(i=2;i*i<n;++i),直到n%i==0为止)得到:p=891234941,q=1123984201;(之前本人先去找质数 再去验证它是不是n的因数...跑了半天都没跑出来)根据题目描述,de除(以?——注意:除和除以是不一样的概念,原题应该是少打了’以‘子)(p-1)
试题I:糖果 题目链接:精选项目课程_IT热门课程_蓝桥云课课程 - 蓝桥云课题目解析:典型的状压dp。用dp[i]表示买齐数i表示的集合需要的最少糖果数,w[i]表示第i包糖果,则状态转移方程:dp[j|w[i]]=min(dp[j|w[i]],dp[j]+1);其中dp[j]有意义(即不为无限大),(~w[i]&j)==true(w[i]不是j的子集)最后检查dp[1<<21-1]的值再输出答案即可。代码://#define local#include&
试题D:迷宫 题目链接:https://www.lanqiao.cn/courses/2786/learning/?id=67813答案:DDDDRRURRRRRRDRRRRDDDLDDRDDDDDDDDDDDDRDDRRRURRUURRDDDDRDRRRRRRDRRURRDDDRRRRUURUUUUUUULULLUUUURRRRUULLLUUUULLUUULUURRURRURURRRDDRRRRRDDRRDDLLLDDRRDDRDDLDDDLLDDLLLDLDDDLDDRRRRRRRRRDDDDDDRR解析:典
试题B:数列求和 题目链接:https://www.lanqiao.cn/courses/2786/learning/?id=67813答案:4659解析:根据题目容易想到线性递推,若记dp[i]为第n项的最后4位数字,则递推方程为:dp[i]=(dp[i-1]+dp[i-2]+dp[i-3])%10000代码://#define local#include<cstdio>#include<iostream>using namespace std;typedef lon
试题A 平方和 题目链接:https://www.lanqiao.cn/courses/2786/learning/?id=67813答案:2658417853解析:按照题目要求直接暴力加即可,代码如下://#define local#include<cstdio>#include<iostream>using namespace std;typedef long long ll;//用于检查数n是否含2或0或1或9bool cheak(int n){ while
试题H 字串分值 题目链接:精选项目课程_IT热门课程_蓝桥云课课程 - 蓝桥云课题目解析:看每个字符会在多少个字串中作出贡献即可,将其相加即可。代码://#define local#include<cstdio>#include<iostream>#include<string>using namespace std;typedef long long ll;#define MAXN 100002ll res=0;int last[MAXN];int ne
试题G 回文日期 题目链接:精选项目课程_IT热门课程_蓝桥云课课程 - 蓝桥云课题目解析:用i,j,k分别表示年月日,暴力循环加剪枝代码://#define local#include<cstdio>#include<iostream>using namespace std;typedef long long ll;int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};bool isrun(int y){ if((y%4=
试题F 成绩分析 题目链接:精选项目课程_IT热门课程_蓝桥云课课程 - 蓝桥云课题目解析:按照题目要求直接编码即可。代码://#define local#include<cstdio>#include<iostream>#include<vector> using namespace std;int main(){#ifdef localfreopen("data.in","rb",stdin);//freopen("data.out","wb",std.
试题D 八段码 题目链接:精选项目课程_IT热门课程_蓝桥云课课程 - 蓝桥云课题目答案:80题目解析:暴力遍历+并查 集首先将七段码转化成图再枚举出每一种情况,后用并查集看形成的图的连通分量是否为1代码://#define local#include<cstdio>#include<iostream>#include<vector>typedef long long ll;using namespace std;vector<int&g..
试题C 蛇形填数 试题链接:精选项目课程_IT热门课程_蓝桥云课课程 - 蓝桥云课题目答案:761题目解析:找规律题,对于在对角线上的数,满足:dp[i] = dp[i-1] + 4*(i-1)代码://#define local#include<cstdio>#include<iostream>using namespace std;long long dp[30]; int main(){#ifdef localfreopen("data.in","rb",.
试题B 既约分数 题目链接:精选项目课程_IT热门课程_蓝桥云课课程 - 蓝桥云课题目答案:2481215题目解析:暴力遍历即可,注意在题目条件下:1/1也算既约分数代码://#define local#include<cstdio>#include<iostream>using namespace std;int gcd(int a,int b){ return b==0?a:gcd(b,a%b);} int main(){#ifdef local//
试题A:门牌制作 题目链接:精选项目课程_IT热门课程_蓝桥云课课程 - 蓝桥云课答案:624题目解析:根据题目要求编码即可代码://#define local#include<cstdio>#include<iostream>using namespace std;typedef long long ll;int n; // 计算数n含有多少个2ll count(int n){ ll res=0; for(int i=1;i<=n;i++){ int t
P4017 最大食物链计数 //#define local#include<cstdio>#include<iostream>#include<vector>#define MAXN 5005#define MOD 80112002using namespace std;typedef long long ll;int n,m;int dp[MAXN]={0};int s[MAXN]; vector<int>son[MAXN];void dfs(int cur).
试题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故
试题G 异或数列 题目链接:精选项目课程_IT热门课程_蓝桥云课课程 - 蓝桥云课题目解析:观察到:0异或某个数不变;1异或某个数,改变该数。因此优先考虑(二进制下)最高位的数首先统计,在给定的数中,各个位数的1的总和有多少个;从高位到低位,寻找第一个1的数量非0位若在该位1的数量为偶数,则看下一位(偶数个1与某数异或后该数不变);若在该位1的数量为1,则谁先抢到1谁赢;若在该位1的数量为大于1的奇数,对于先手的人来说,0的数量为奇数就抢不到最后一个1,输。反之则赢若所有位
试题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