
蓝桥杯
文章平均质量分 64
Wpiper
这个作者很懒,什么都没留下…
展开
-
2021第十二届蓝桥杯C/C++B组省赛 第一场 部分题目总结
试题A:思路:考计算机基础知识bit:位,又名比特,缩写是b,是计算机中最小的数据单位,其实就是0,1这样的二进制位Byte:字节,缩写是B,是计算机文件大小的基本计算单位,一个字符是1Byte,如果是汉字,则是2Byte1Byte=8bit1Byte=8bit(1B=8b) 1个字节=8位,即一个字节由8个二进制位构成1KB=1024Byte1MB=1024KB1GB=1024MB1TB=1024GB所以本题:1个32位二进制数占4个字节25610241024/4=6710886原创 2022-04-08 20:29:55 · 1403 阅读 · 0 评论 -
蓝桥杯基础数论
分解质因数模板每个合数n都可以写成几个质数相乘的形式,其中每个质数都是这个合数n的因数,把一个合数n用质因数相乘的形式表示出来,叫做分解质因数n中最多只包含一个大于根号n的质因子例如:30=2x3x5,分解质因数只针对合数,对于质数只能表示为1和它本身,如:17=1*17代码:#include<iostream>#include<algorithm>#include<cmath>using namespace std;long long int n;i原创 2022-04-08 20:27:37 · 1029 阅读 · 0 评论 -
AcWing 519 跳石头(二分)
跳石头思路:其实看到最短距离的最大值,就可以想到用二分去做,但是还是无从下手,不知道二分什么,感觉这个题对于我来说还是有些困难,自己去做还是做不出,不过看了题解也能通透不少首先这个跳跃距离的区间它是单调递增的,然后我们其实可以以这个距离为区间去枚举最短的跳跃距离x,然后去检查x的合法性。我们就把x看作最短的跳跃距离,然后以这个最短的跳跃距离去移动石头,我们判断两个石头之间的距离,如果这两个石头之间的距离小于x,那我们就需要把这个石头给移走,因为x已经是最短的了,不可能出现比x还短的,搞一个计数器nu原创 2022-04-02 22:29:46 · 566 阅读 · 0 评论 -
Acwing730 机器人跳跃问题(二分)
机器人跳跃问题思路:假设初始值能量为E,往高处跳的能量变化为:E-(H(k+1)-E)=2E-H(k+1)往低处跳的能量变化为:E+(E-H(k+1))=2E-H(k+1)E越大,能量变化越大,所以具有单调性如果我们找到一个符合题意的E,即那个至少的能量E,这时候E的左边,全部不符,E的右边全部符合,可知具有二段性所以我们考虑二分左边界设置为0右边界具体设置为多少,需要我们去思考一下如果我们假设右边界为建筑物的最高值maxh则2E-a[i]>=0是一定的,而所有建筑物的高度原创 2022-04-02 11:29:53 · 404 阅读 · 0 评论 -
AcWing789. 数的范围(整数二分板子)
数的范围思路:记板子,一个超级行的板子在单调递增序列中查找大于等于X的数中最小的一个(即X或X的后继)//在单调递增序列中查找大于等于X的数中最小的一个(即X或X的后继)int leftCheck(int x) { int l = 0; int r = n - 1; while (l < r) { int mid = (l + r) >> 1; if (a[mid] >= x) { r = mid; } else { l = mid + 1;原创 2022-04-01 21:23:08 · 216 阅读 · 0 评论 -
蓝桥杯C/C++B组省赛日期类问题汇总
蓝桥2017第八届省赛第七题 日期问题思路:暴力枚举从1960年1月1日到2059年12月31日的所有合法日期,然后拆分出年月日,如果符合题目中的三种情况之一(年/月/日 月/日/年 日/月/年)的输出即可#include<bits/stdc++.h>using namespace std;int a[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int check(int year, int month, in原创 2022-03-31 00:17:19 · 1760 阅读 · 0 评论 -
蓝桥2017省赛 k倍区间(前缀和+简单数论+分类讨论)
k倍区间一开始想的还是暴力枚举,但是自己知道会超时,所以没有去写,后面看了别人的代码,用的是前缀和,其实前不久用了蛮多次前缀和,但是这一次没有想起来以后看到有关区间和的要首先想到能不能用前缀和去处理这个题不仅是前缀和,还夹杂了数论的一点简单知识要求一个区间的和为k的倍数,前缀和处理后,我们记这个区间为sum[i]-sum[j],但是如果直接这样判断是否为k的倍数的话,还是要去枚举j.所以还是会超时由(sum[i]-sum[j])%k=0得到sum[i]%k=sum[j]%k这时候就想到开一个原创 2022-03-24 16:53:26 · 187 阅读 · 0 评论 -
蓝桥2017省赛 分巧克力(二分)
分巧克力分析:一开始想到的是暴力枚举,枚举切割下来的巧克力的边长a,这时候要解决的问题就是一个长方形巧克力,最多能切出多少块正方形巧克力,即为(长方形的长/a)*(长方形的宽/a),不难看出,这个做法的复杂度高达10^10,TLE二分优化,时间复杂度降为nlog2n超时的暴力做法:#include<bits/stdc++.h>using namespace std;struct node { int w; int h;} a[100000 + 10];int b[100原创 2022-03-24 10:56:56 · 395 阅读 · 0 评论 -
蓝桥题组总结
C/C++ B组蓝桥杯省赛第一题:跑步训练(5分)题目描述小明要做一个跑步训练。初始时,小明充满体力,体力值计为 10000 。如果小明跑步,每分钟损耗 600 的体力。如果小明休息,每分钟增加 300 的体力。体力的损耗和增加都是均匀变化的。小明打算跑一分钟、休息一分钟、再跑一分钟、再休息一分钟……如此循环。如果某个时刻小明的体力到达 0 ,他就停止锻炼。请问小明在多久后停止锻炼。为了使答案为整数,请以秒为单位输出答案。答案中只填写数,不填写单位。分析:先求出每秒损耗的体力(600/60=1原创 2022-02-24 15:24:39 · 174 阅读 · 0 评论 -
蓝桥2019 后缀表达式
后缀表达式思路:如果m=0,即没有负号,全是正号,所有数直接相加即为最大值如果m不等于0,即有正号又有负号,需要分情况讨论第一种情况:如果全是正数:只有一个负号如1 11 2 3此时最大值是3+2-1=4负号的个数大于等于两个如1 31 2 3 4 5此时最大值是5-(1-2-3-4)=13又如0 91 2 3 4 5 6 7 8 9 10此时最大值是10-(1-2-3-4-5-6-7-8-9)=53可以发现,在全是正数的时候,先对这组数从小到大排序,原创 2022-02-22 22:28:16 · 387 阅读 · 0 评论