- 博客(107)
- 收藏
- 关注
原创 试题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[
2022-05-07 12:18:07
198
原创 试题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.
2022-05-07 12:17:59
187
原创 试题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.
2022-05-07 12:17:50
165
原创 试题C 最大降雨量
题目链接:https://www.lanqiao.cn/courses/2786/learning/?id=67813答案:34解析:个人觉得这道题就是考观察能力,想通了就觉得特别简单。这道题的关键点是:至少有多少个数比所求值大。首先,对七个中位数来说,有3个比所求值大。所求值所在的那一周,有且只有3个数比所求值大。而对于每一个大于所求值的中位数所在的周来说,在该周中有4数个比该中位数大,即在该周中至少有4个数比所求值大。因此,至少有3+4+4+4=15个数比所求值大,因此,所求
2022-05-07 12:17:39
169
原创 试题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)
2022-05-07 12:17:10
202
原创 试题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&
2022-05-07 12:16:59
102
原创 试题D:迷宫
题目链接:https://www.lanqiao.cn/courses/2786/learning/?id=67813答案:DDDDRRURRRRRRDRRRRDDDLDDRDDDDDDDDDDDDRDDRRRURRUURRDDDDRDRRRRRRDRRURRDDDRRRRUURUUUUUUULULLUUUURRRRUULLLUUUULLUUULUURRURRURURRRDDRRRRRDDRRDDLLLDDRRDDRDDLDDDLLDDLLLDLDDDLDDRRRRRRRRRDDDDDDRR解析:典
2022-05-07 12:16:44
158
原创 试题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
2022-05-03 10:03:46
157
原创 试题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
2022-05-03 10:03:30
155
原创 试题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
2022-05-03 10:03:15
145
原创 试题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=
2022-05-03 10:03:04
130
原创 试题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.
2022-05-03 10:02:47
127
原创 试题D 八段码
题目链接:精选项目课程_IT热门课程_蓝桥云课课程 - 蓝桥云课题目答案:80题目解析:暴力遍历+并查 集首先将七段码转化成图再枚举出每一种情况,后用并查集看形成的图的连通分量是否为1代码://#define local#include<cstdio>#include<iostream>#include<vector>typedef long long ll;using namespace std;vector<int&g..
2022-05-03 10:02:37
150
原创 试题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",.
2022-05-03 10:02:17
141
原创 试题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//
2022-05-03 10:02:07
134
原创 试题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
2022-05-03 10:01:54
279
原创 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).
2022-05-03 10:01:43
134
原创 试题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
150
原创 试题G 异或数列
题目链接:精选项目课程_IT热门课程_蓝桥云课课程 - 蓝桥云课题目解析:观察到:0异或某个数不变;1异或某个数,改变该数。因此优先考虑(二进制下)最高位的数首先统计,在给定的数中,各个位数的1的总和有多少个;从高位到低位,寻找第一个1的数量非0位若在该位1的数量为偶数,则看下一位(偶数个1与某数异或后该数不变);若在该位1的数量为1,则谁先抢到1谁赢;若在该位1的数量为大于1的奇数,对于先手的人来说,0的数量为奇数就抢不到最后一个1,输。反之则赢若所有位
2022-05-02 09:29:25
129
原创 试题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
129
原创 试题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
317
原创 试题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
138
原创 试题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
124
原创 试题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
164
原创 试题A 卡片
题目链接:https://www.lanqiao.cn/courses/2786/learning/?id=280825答案:3181题目解析:按照题目要求直接编程即可但要注意终止条件本文以存在某个数的数量小于等于0时作为终止条件达到终止条件时,打印每个数的剩余数量若均为非负数,则答案就是达到终止条件对应的那个数否则,答案为达到终止条件对应的那个数减一代码://#define local#include<cstdio>#include<iost
2022-05-02 09:28:12
149
原创 试题I 括号序列
题目链接:https://www.lanqiao.cn/courses/2786/learning/?id=280825题目解析:这是一道动态规划题合法的括号序列满足以下两个条件①从左往右数,任意一个位置的左括号数量均不少于右括号②从右往左数,任意一个位置的右括号数量均不少于左括号②也可表表述为:将整个括号序列翻转,并将左括号视作右括号,右括号视作左括号时,①仍然成立下面来谈谈①的实现:考虑到n个左括号的全排列只有一种,因此我们约定,仅在右括号的前面添加左括号显然最多添
2022-05-02 09:27:53
197
原创 P1434 [SHOI2002]滑雪
//#define local#include<cstdio>#include<iostream>using namespace std;int r,c; int e[101][101];int dp[101][101];bool vis[101][101];int dirx[4]={0,-1,0,1};int diry[4]={1,0,-1,0};void dfs(int x,int y){ if(vis[x][y]) return; vis[x][y.
2022-05-02 09:27:18
216
原创 P4170 [CQOI2007]涂色
#include<cstdio>#include<iostream>#include<string.h>#include<vector>#define MAXN 55 typedef long long ll;using namespace std;char str[55];int dp[MAXN][MAXN]={0};int min(const int &a,const int &b){ return a<b?a:.
2022-05-01 10:48:49
98
原创 P1063 [NOIP2006 提高组] 能量项链
//#define local#include<cstdio>#include<iostream>#define MAXN 105 using namespace std;typedef long long ll;int max(const int &a,const int &b){ return a>b?a:b;}int n,a[MAXN];int maxe=0;int dp[MAXN][MAXN]={0}; int main(){.
2022-05-01 10:47:50
249
原创 P3205 [HNOI2010]合唱队
//#define local#include<cstdio>#include<iostream>#define MAXN 1005#define MOD 19650827 using namespace std;typedef long long ll;int n,a[MAXN];int dp[MAXN][MAXN][2]={0}; //0:左边进来 1:右边进来 int main(){#ifdef localfreopen("data.in","rb",s.
2022-05-01 10:47:00
79
原创 P1220 关路灯
//#define local#include<cstdio>#include<iostream>#define MAXN 55 #define INF 0x3f3f3f3fusing namespace std;typedef long long ll;int min(int &a,int &b){ return a<b?a:b;}int n,c;int dp[MAXN][MAXN][2];int d[MAXN],s[MAXN];i.
2022-05-01 10:46:09
220
原创 P1091 [NOIP2004 提高组] 合唱队形
#include<cstdio>#include<iostream>#include<algorithm>#include<vector>#define MAXN 105typedef long long ll;using namespace std;int n;int h[MAXN];bool cmp(int a,int b){ return a>b;}int find(int b,int e){ vector<int.
2022-05-01 10:43:16
133
原创 P1233 木棍加工
//#define local#include<cstdio>#include<iostream>#include<vector>#include<algorithm>#define MAXN 5005using namespace std;typedef long long ll;struct size{ int l,w; size(int l=0,int w=0):l(l),w(w){ } bool operator <.
2022-05-01 10:41:54
150
原创 P1077 [NOIP2012 普及组] 摆花
//#define local#include<cstdio>#include<iostream>using namespace std;typedef long long ll;int n,m;int a[105],sum[105]={0}; ll f[105][105]={0};const ll mod=1e6+7; int main(){#ifdef localfreopen("data.in","rb",stdin);//freopen("data..
2022-05-01 10:40:41
202
原创 P4933 大师
//#define local#include<cstdio>#include<iostream>#include<vector>#define MAXN 1005#define MAXD 20000#define MOD 998244353using namespace std;typedef long long ll;ll dp[MAXN][2*MAXD+1]={0};vector<int>h;int n; int main(){.
2022-05-01 10:39:48
211
原创 P1280 尼克的任务
//#define local#include<cstdio>#include<iostream>#include<cmath>#include<vector>#define MAXN 10005using namespace std;typedef long long ll; int n,k;vector<int>t[MAXN];int f[MAXN]={0};int main(){#ifdef localfreope.
2022-05-01 10:38:53
267
原创 P1020 导弹拦截
//#define local#include<cstdio>#include<iostream>#include<algorithm>#include<vector>#define MAXN 2002using namespace std;typedef long long ll; bool compare(int &a,int &b,int &cheak){ if(cheak==0) return a>b.
2022-05-01 10:37:19
305
原创 P1122 最大子树和
//#define local#include<cstdio>#include<iostream>#include<vector>#include<cmath>#define MAXN 16005#define INF 0x7fffffff using namespace std;typedef long long ll; int dp[MAXN];//dp[i]表示当前结点可得到的最大值 vector<int>e[MAXN].
2022-04-10 09:18:24
186
原创 P2014 选课
//#define local#include<cstdio>#include<iostream>#include<vector>#define MAXN 305using namespace std;typedef long long ll;int max(const int &a,const int &b){ return a>b?a:b;}int n,m;int w[MAXN]; vector<int>e[.
2022-04-10 09:17:23
96
原创 P2015 二叉苹果树
//#define local#include<cstdio>#include<iostream>#include<vector>#define MAXN 105using namespace std;typedef long long ll; int n,q;//n结点数 q保留数 int dp[MAXN][MAXN]={0};//dp[i][j]表示i结点后含 j个树枝的最大果实数量 vector<int>e[MAXN];int w[.
2022-04-10 09:16:29
109
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人