
蓝桥杯
文章平均质量分 56
蓝桥杯真题
m0_51303687
取乎其上,得乎其中;取乎其中,得乎其下;取乎其下,则无所得矣。
展开
-
蓝桥杯模拟赛记录
1:大意就是给一个IP地址,里面有一个数不知道,问该数最大是多少答案:常识,显然2552:如果一个整数 g 能同时整除整数 A 和 B,则称 g 是 A 和 B 的公约数。例如:43 是 86 和 2021 的公约数。请问在 1(含) 到 2021(含) 中,有多少个数与 2021 存在大于 1 的公约数。请注意 2021 和 2021 有大于 1 的公约数,因此在计算的时候要算一个。只要计算出所有因数放到集合里,并把它们的倍数也放到集合里就可以了。做的时候出了点低级的错误:把每个因数都设原创 2021-11-28 12:16:48 · 1538 阅读 · 2 评论 -
做题记录 2021.8.8
1.这是蓝桥杯国赛试题。直接算恐怕不现实,原本想用前缀和预处理再查询,看到数据范围直接放弃。于是想到如下思路:分别计算l和r在哪一段;在1的基础上,计算l和r在那一段的第几个;在1的基础上,计算两段之间的数的和;将2、3相加,即为答案;前三步都可以用等差数列求和公式直接算出。注意不要忘了long long代码:#include <cstdio>#include <algorithm>#define long long longusing namespa原创 2021-08-08 09:06:05 · 107 阅读 · 0 评论 -
做题记录2021.7.15
题目链接解法一:暴力遍历,设立两个指针l和r表示最左边和最右边的位置,l和r不断移动的同时更新和,求出最大值原创 2021-07-16 10:30:07 · 85 阅读 · 0 评论 -
做题记录2021.6.29
最近复习期末考试,在忙乱之中挤出一点时间做题,突然发现自己好像只会套模板了(ㄒoㄒ)思维能力还是不足,比如下面这题:拿到题目,想当然认为只要选取前m大的不就行了吗,最后WA……这种想法并没有考虑到负负得正,比如6 52 -2 4 2 -4 -2这组数据,按照上面的想法会得到64的错误结果,实际答案为(-4)x(-2)x422=128。那怎么办呢,只能暴力搜索了吗?void dfs(int i,int st,int tot,int mul=1) { if(i>=tot) {原创 2021-06-29 10:59:52 · 87 阅读 · 0 评论 -
做题记录2021.6.12
思路:分为最高位为0和1计算。注意:n的二进制位位数为m=[log2n]+1m=[log_2 n]+1m=[log2n]+1。最高位为0时,后面的各二进制位可以任意取0或1,共CmkC_m^kCmk种情况。最高位为1时,这个我还真没想出来,只能暴力求解。可以减少求解次数,比如k=2,m=10,可以从513(1000000001)求解到min(n,768(1100000000))。#include <cstdio>#include <algorithm>#include.原创 2021-06-12 10:51:28 · 85 阅读 · 0 评论 -
2018第九届蓝桥杯省赛B组做题记录
很简单,代码就不贴了答案:125按题意模拟即可,注意负数要取补码。如果对正数也取补码,那么也可以看见字,但图形会十分难看。#include <cstdio>#include <algorithm>using namespace std;int a[11][33];short bin[16];int tobinary(int x){ //注意每一个字符都是8位 fill(bin,bin+16,0); int k=0,t=x; x=abs(x); whi原创 2021-04-05 11:05:23 · 98 阅读 · 0 评论 -
2019年第10届蓝桥杯C/C++ B组省赛做题记录
直接搜索即可代码:#include <cstdio>#include <algorithm>#define YDY 21#define LOC 6using namespace std;bool vis[YDY];int maxn=0,team[YDY][LOC];void dfs(int loc,int soc,int st) { //soc为当前分数,st代表当前位置从第st个运动员开始 if(loc>5) { maxn=max(soc,maxn);原创 2021-03-20 14:10:46 · 178 阅读 · 0 评论 -
学习笔记2021.2.17
今天做了蓝桥杯2017年C组第7题和B组第3题这题不难。相当于26进制,注意余数为0相当于Z,而且此时应将商减1代码:#include <cstdio>#include <algorithm>using namespace std;int main(){ char ch[26]={'Z'},res[50]; int i,n,a,b,k=0; scanf("%d",&n); for(i=1;i<26;i++)原创 2021-02-17 17:27:13 · 87 阅读 · 0 评论 -
学习笔记2021.2.16
今天做了2018年蓝桥杯初赛第7题根据题意,折线的方向为左→上→右→下,上行和下行结束后走的步数都要加一,(注意结果可能很大,要用long long)于是容易写出以下代码:代码:#include <cstdio>#include <algorithm>#define tru (cx!=n||cy!=m)&&s<maxlusing namespace std;int main() { int n,m,maxl=1,s=0,cx=0,cy=0原创 2021-02-16 18:00:00 · 120 阅读 · 0 评论 -
2020年第11届蓝桥杯C/C++ B组省赛(第一场)做题记录
思路: 由题意得每2分钟消耗300体力,算得时间为66又2/3分钟,即66分40秒。验算一下: 第1分钟结束后剩余体力9400第2分钟结束后剩余体力9700……第64分钟结束后剩余体力400第65分钟结束后剩余体力-200很明显不对,在第65分钟过去2/3时体力就已用完,所以正确答案为64分40秒,即3880秒。思路: 不多说,直接计算即可。两个日期相距36138天,所以答案为361382460填空题剩下三个都不会……思路: 不多说,直接算即可,注意最后不要多一个空格。代码:#inc原创 2021-02-06 10:00:05 · 245 阅读 · 0 评论 -
2020年第11届蓝桥杯C/C++ B组省赛(第二场)做题记录
鉴于本人将参加第12届蓝桥杯,所以从网上找来第11届真题做,发现自己还有许多不足之处,就记录一下。思路: 编写一个函数,将一个数的各位数字分离,计算有多少个2代码:#include <cstdio>#include <algorithm>using namespace std;int numoftwo(int n) { int m=0; while(n>0) { int t=n%10; if(t==2) {原创 2021-02-01 10:18:20 · 300 阅读 · 2 评论