文章目录

  • 第一题:门牌制作(枚举)
    • 答案:624
  • 第二题:既约分数(最大公约数)
    • 答案:2481215
  • 第三题:蛇形填数(模拟)
    • 答案:761
  • 第四题:7段码(dfs + 并查集 | 位运算,观察)
    • 答案:80
  • 第五题:平面分割(数学 | 找规律)
    • 答案:1391
  • 第六题:成绩统计(模拟)
  • 第七题:回文日期(日期处理)
    • 蓝桥杯官网`to_string()`不能用
  • 第八题:子串分值(枚举)
    • 注:蓝桥杯练习系统`auto` 不能用
  • 第九题:荒岛探测
  • 第十题:字串排序

蓝桥杯官网提交地址

题目链接

第一题:门牌制作(枚举)

答案:624

#include <iostream>using namespace std;int get(int x)
{int res = 0;while(x){if(x % 10 == 2) res++;x /= 10;}return res;
}int main()
{int res = 0;for(int i = 1;i <= 2020;i ++ ){res += get(i);}cout << res;return 0;
}

第二题:既约分数(最大公约数)

答案:2481215

#include <iostream>
#include <algorithm>using namespace std;int main()
{int res = 0;for(int i = 1;i <= 2020;i ++ )for(int j = 1;j <= 2020;j ++)if(__gcd(i,j) == 1) res++;cout << res;return 0;
}

第三题:蛇形填数(模拟)

答案:761

横坐标 + 列坐标 - 1 = 行数,20行20列为 39行最中间那个数

#include <iostream>
#include <algorithm>using namespace std;int main()
{// 前38行个数: 1 + 2 + ... + 38 = (1 + 38) * 38 / 2;// 第39行 有39个数: 742 ...    742 + 38cout << (1 + 38) * 38 / 2 <<endl;cout << (742 + 742 + 38) / 2; // 第39行中间那个return 0;
}

第四题:7段码(dfs + 并查集 | 位运算,观察)

答案:80

题解地址

#include <iostream>using namespace std;const int N = 7;int p[N];
bool e[N][N];
bool st[N];
int ans;int find(int x)
{if(p[x] != x) p[x] = find(p[x]);return p[x];
}void dfs(int u)
{if(u == 7){for(int i = 0; i < 7;i ++ ) p[i] = i; // 并查集初始化for(int i = 0;i < 7;i ++ )for(int j = 0 ;j < 7;j ++ )if(e[i][j] && st[i] && st[j]){p[find(i)] = find(j);}int cnt = 0;for(int i = 0;i < 7;i ++ )if(st[i] && p[i] == i) cnt ++;if(cnt == 1) ans ++;return ;}st[u] = 1;dfs(u + 1);st[u] = 0;dfs(u + 1);
}int main()
{e[0][1] = e[0][5] = 1;e[1][0] = e[1][2] = e[1][6] = 1;e[2][1] = e[2][3] = e[2][6] = 1;e[3][2] = e[3][4] = 1;e[4][3] = e[4][5] = e[4][6] = 1;e[5][0] = e[5][4] = e[5][6] = 1;e[6][1] = e[6][2] = e[6][4] = e[6][5] = 1;dfs(0); // 'a' 映射到0cout << ans;return 0;
}

第五题:平面分割(数学 | 找规律)

答案:1391

20 个圆和 20 条直线最多能把平面分成多少个部分?

第六题:成绩统计(模拟)


浮点数四舍五入技巧: +0.5取int
\转义字符

#include <iostream>using namespace std;int main()
{int n;cin >> n;int s1 = 0,s2 = 0; for(int i = 0;i < n;i ++ ){int x;cin >> x;if(x >= 85) s1 ++ ,s2 ++;else if(x >= 60) s1 ++ ;}// cout << int((double)s1 * 100 / n + 0.5)<< "%" <<endl;// cout << int((double)s2 * 100 / n + 0.5)<< "%" <<endl;printf("%d\%\n",(int)(s1*100.0/n+0.5));//进行四舍五入操作printf("%d\%\n",(int)(s2*100.0/n+0.5));return 0;}

第七题:回文日期(日期处理)


蓝桥杯官网to_string()不能用

详细题解
判断日期是否合法学一手!

#include <iostream>
#include <algorithm>using namespace std;int x;
int days[13] = {0,31,29,31,30,31,30,31,31,30,31,30,31};bool valid(int x)
{int year = x / 10000;int month = x % 10000 / 100;int day = x % 100;if (month == 0 || month > 12) return false;if (day == 0 || month != 2 && day > days[month]) return false;if (month == 2){bool leap = year % 100 && year % 4 ==0 || year % 400 == 0; //判断闰年if (day > 28 + leap) return false;}return true;
}bool check_ABAB(int x)
{string s = to_string(x);return s[0] == s[2] && s[1] == s[3] && s[0] != s[1];
}int main()
{int x;cin >> x;bool f = 1;for(int i = 1000;i < 10000 ;i ++) // 根据年份构造回文日期{int data = i, t = i;for(int j = 0;j < 4;j ++ ) data = data * 10 + t % 10, t /= 10; // 生成回文日期if(data > x && valid(data) && f){cout << data <<endl;f = 0;}if(data > x && valid(data) && check_ABAB(data)){cout << data;break;}}return 0;
}

蓝桥杯官网提交

#include <iostream>
#include <algorithm>
#include <cstring>using namespace std;int x;
int days[13] = {0,31,29,31,30,31,30,31,31,30,31,30,31};bool valid(int x)
{int year = x / 10000;int month = x % 10000 / 100;int day = x % 100;if (month == 0 || month > 12) return false;if (day == 0 || month != 2 && day > days[month]) return false;if (month == 2){bool leap = year % 100 && year % 4 ==0 || year % 400 == 0; //判断闰年if (day > 28 + leap) return false;}return true;
}bool check_ABAB(int x)
{int a = x / 10000000, b = x / 1000000 % 10, c = x / 100000 % 10, d = x / 10000 % 10;return a == c && b == d && a != b;
}int main()
{int x;cin >> x;bool f = 1;for(int i = 1000;i  ;i ++) // 根据年份构造回文日期{int data = i, t = i;for(int j = 0;j < 4;j ++ ) data = data * 10 + t % 10, t /= 10; // 生成回文日期if(data > x && valid(data) && f){cout << data <<endl;f = 0;}if(data > x && valid(data) && check_ABAB(data)){cout << data;break;}}return 0;
}

第八题:子串分值(枚举)

分析:
不能陷入找子串的思维中,不然时间复杂度就是O(n2)O(n ^ 2)O(n2)的量级,考虑每个字母对子串的贡献。


注:蓝桥杯练习系统auto 不能用

#include <iostream>
#include <vector>using namespace std;vector<int> pos[26];int main()
{string s;cin >> s;s = "0" + s; // 下标从0开始int n = s.size();for(int i = 0;i < 26;i ++ ) pos[i].push_back(0); // 处理边界for(int i = 1;i <= n - 1;i ++ ) {pos[s[i] - 'a'].push_back(i);}for(int i = 0;i < 26;i ++ ) pos[i].push_back(n); // 处理边界long long res = 0;for(int i = 0;i < 26;i ++ ){vector<int> c = pos[i];if(c.size() == 2) continue; // 字母没出现过for(int i = 1;i < c.size() - 1;i ++ ){res += (long long)(c[i] - c[i - 1]) * (c[i + 1] - c[i]);}}cout << res << endl;return 0;
}

第九题:荒岛探测

评测地址

第十题:字串排序

评测地址

【蓝桥杯历年题】2020蓝桥杯A组省赛第二场(10.17)【含蓝桥杯官网提交地址】相关推荐

  1. 2020第十一届蓝桥杯大赛软件类省赛第二场 Java 大学 B 组

    2020第十一届蓝桥杯大赛软件类省赛第二场 Java 大学 B 组 试题 A: 门牌制作(难度:★) 思路: 代码: 试题 B: 寻找 2020(难度:★★) 思路: 代码: 试题 C: 蛇形填数(难 ...

  2. 突击蓝桥杯嵌入式(七)——第十三届省赛第一场真题

    突击蓝桥杯嵌入式(七)--第十三届省赛第一场真题 一.题目概览 二.思路梳理 我们直接在LCD例程的基础上,改需增加的外设如下: LED灯(配置锁存器PD2),串口(波特率9600,带中断),按键4个 ...

  3. 蓝桥杯模拟赛第二场(web)

    文章目录 蓝桥杯模拟赛第二场(web) 1 卡片化标签页 2 随机数生成器 3 个人博客 4 学生成绩统计 5 水果摆盘 6 给页面化个妆 7 小兔子爬楼梯 8 时间管理大师 9 购物车 10 菜单树 ...

  4. 第十二届蓝桥杯大赛软件赛省赛第二场【C++B组】

    自己参加的是第一次场的,打的很烂.做了一下第二场的题,我是真想骂街. 第二场普遍简单许多. 目录 A: 求余 [签到] B: 双阶乘 [签到] C: 格点 [签到题] D: 整数分解 [DP] E: ...

  5. 【蓝桥杯历年题】2020蓝桥杯第十一届A组省赛第一场(7.5)【含Acwing提交地址】

    文章目录 6-10题Acwing均有提交地址 第一题:跑步训练(模拟) 答案:3880 第二题:合并检测(数学,均值不等式) 答案:10 第三题:分配口罩(搜索,dfs) 答案:2400 第四题:矩阵 ...

  6. 第十一届蓝桥杯大赛(2020年)软件类省赛第二场 Python大学组 真题+个人解答

    试题A:门牌制作 本题总分:5分 [问题描述] 小蓝要为一条街的住户制作门牌号. 这条街一共有2020位住户,门牌号从1到2020编号. 小蓝制作门牌的方法是先制作0到9这几个数字字符,最后根据需要将 ...

  7. 2020 第十一届蓝桥杯大赛软件类省赛第二场 C/C++ 大学 B 组 完整题面和题解

    文章目录 A:门牌制作 题面: 思路: 代码: 答案: B:既约分数 思路: 代码: 答案: C:蛇形填数 题面: 思路: 代码: 答案: D:跑步锻炼 题面: 思路: 代码: 答案: E:七段码 题 ...

  8. 第十一届蓝桥杯2020年C++A组省赛题解

    文章目录 注 考生须知 试题A:门牌制作 代码 试题B:既约分数 代码 试题C:蛇形填数 题解 代码 试题D:七段码 题解 代码 试题E:平面分割 题解 代码 试题F:成绩分析 题解 代码 试题G:回 ...

  9. 2020第十一届蓝桥杯软件类省赛第二场C/C++ 大学 B 组(题解)

    试题 A: 门牌制作 问题描述 小蓝要为一条街的住户制作门牌号. 这条街一共有 2020 位住户,门牌号从 1 到 2020 编号. 小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需 ...

  10. 第十三届蓝桥杯大赛软件赛省赛第二场(Java 大学A组)

    蓝桥杯 2022年省赛真题 Java 大学A组 第二场 试题 A: 练习 试题 B: 超级质数 试题 C: 考勤刷卡 试题 D: 最大和 试题 E: 染色时间 试题 F: k 倍区间 试题 G: 选素 ...

最新文章

  1. opencv 检测直线、线段、圆、矩形
  2. 2021高校毕业生薪酬Top100出炉!清华指数TOP,薪酬却排名第二
  3. 【Python】keras使用LSTM拟合曲线
  4. UA OPTI501 电磁波8 麦克斯韦方程边界条件的推导
  5. 23-Python3 File
  6. 冰与火之歌:「时间」与「空间」复杂度
  7. AJAX并不神秘:揭密各种AJAX控件和类库
  8. 漫画:什么是机器学习
  9. 《The Pomodoro Technique》
  10. Theano 中文文档 0.9 - 7.2.4 条件
  11. Xcode中的iOS工程模板
  12. Java 18 就要来了,新功能很多!
  13. el-descriptions文本水平垂直居中
  14. 微信小程序实践——实验4高校新闻网
  15. P1053 篝火晚会
  16. HTML入门笔记12-HTML中备注写法
  17. 数据库 - 数据库角色
  18. 41 位全球顶尖 AI 专家共论人工智能创新实践,CCAI 2017 全日程公布!
  19. 计算机休眠开启密码设定,怎么把电脑设定待机密码
  20. uniapp的checkbox标签属性

热门文章

  1. matlab定义域为全体实数画图,MATLAB数学手册教程_第7章_绘图与图形处理
  2. Spring AOP教程(作者原创)
  3. ghost系统卡正在启动服务器,安装win7系统卡在正在启动windows界面的解决方法
  4. 产品经理日常工作之PRD文档
  5. UA OPTI512R 傅立叶光学导论14 卷积定理
  6. win7 ie11版本安装报此更新不适用于计算机问题
  7. sql基础语法(增、删、改、查)
  8. 微博html5版登录网址,微博网页版登录入口
  9. Failed to read artifact descriptor for com.lowagie:itext:jar:2.1.7.js6
  10. SystemView 应用笔记