填空1

题意:输出1到2020之中,数字2出现了一共多少次。

题解:有手就行

用时:3min

正确答案:624

代码

#include <bits/stdc++.h>
using namespace std;
int main() {ios::sync_with_stdio(false);cin.tie(0);int cnt = 0;for (int i = 1; i <= 2020; i++) {int x = i;while (x) {if (x % 10 == 2) ++cnt;x /= 10;}}cout << cnt << "\n";return 0;
}

填空2

题意:求分子和分母都在1到2020范围内的分数中,有多少个是既约分数(既约分数定义为分子分母的gcd为1)。

题解:双重循环硬解, 其中判断是否为既约分数即可。

用时:40min (别嘲笑我。。)

正确答案:2481215

代码

#include <bits/stdc++.h>
using namespace std;
int main() {ios::sync_with_stdio(false);cin.tie(0);int cnt = 0;for (int i = 1; i <= 2020; i++) {for (int j = 1; j <= 2020; j++) {if (__gcd(i, j) == 1) ++cnt;}}cout << cnt << "\n";return 0;
}

填空3

题意:定义了这样一个蛇形走位的数阵,求第20行20列的数字是多少。
1 3 6
2 5
4

题解:打表、推数学公式、演草纸都可。 最初想用演草纸直接推, 但发现数据量有点大, 就写了个程序打表做出来了。

用时:20min

正确答案:761

#include <bits/stdc++.h>
using namespace std;
int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int x = 1, y = 1;int a[100][100] = {};int num = 1;for (int i = 1; x <= 50; i++) {for (int j = 0; j < i; j++) {a[x][y] = num++;if (j != i - 1) {if (i & 1) --x, ++y;else ++x, --y;}}if (i & 1) ++y;else ++x;}cout << a[20][20] << "\n";return 0;
}

填空4

题意:给出一个电子计时器那种数字8,在7个笔画(横或竖)之间选择一些点亮,要求点亮的笔画组成恰好一个连通块,求方案数

题解:DFS求连通块

用时:10min(错了)

正确答案:80

代码

#include <bits/stdc++.h>
using namespace std;bool light[7];
vector<vector<int> > G(7);
int ans;bool judge(vector<int> &v1) {vector<int> v2;queue<int> que;bool vis[7] = {};que.push(v1[0]);vis[v1[0]] = true;while (!que.empty()) {int u = que.front();que.pop();v2.push_back(u);for (int i = 0; i < G[u].size(); i++) {int v = G[u][i];if (find(v1.begin(), v1.end(), v) != v1.end() && !vis[v]) {que.push(v);vis[v] = true;}}}sort(v1.begin(), v1.end());sort(v2.begin(), v2.end());return v2 == v1;
}void dfs(int dep) {if (dep == 7) {vector<int> v;for (int i = 0; i < 7; i++) if (light[i]) v.push_back(i);if (v.size() && judge(v)) ++ans;    return;}light[dep] = true;dfs(dep + 1);light[dep] = false;dfs(dep + 1);
}void build_graph() {G[0].push_back(1), G[0].push_back(5);G[1].push_back(0), G[1].push_back(2), G[1].push_back(6);G[2].push_back(1), G[2].push_back(3), G[2].push_back(6);G[3].push_back(2), G[3].push_back(4);G[4].push_back(3), G[4].push_back(5), G[4].push_back(6);G[5].push_back(0), G[5].push_back(4), G[5].push_back(6);G[6].push_back(1), G[6].push_back(2), G[6].push_back(4), G[6].push_back(5);
}int main() {ios::sync_with_stdio(false);cin.tie(0);build_graph();dfs(0);cout << ans << "\n";return 0;
}

填空5

题意:问20条直线和20个圆最多能分割多少个平面

题解:直接套直线和圆的分割平面公式即可(后悔ing。。。)

正确答案:1391

代码:

#include <bits/stdc++.h>
using namespace std;
int main() {ios::sync_with_stdio(false);cin.tie(0);int line[25] = {};line[1] = 2;for (int i = 2; i <= 20; i++) {line[i] = line[i - 1] + i;}int ans = line[20];for (int i = 1; i <= 20; i++) {ans += 40 + 2 * (i - 1);}cout << ans << "\n";return 0;
}

大题一

题意:给出n个学生的成绩,分别输出最高分、最低分、成绩均值(保留两位);

题解:有手就行

用时:5min

代码

#include <bits/stdc++.h>
using namespace std;
int main() {ios::sync_with_stdio(false);cin.tie(0);int n;scanf("%d", &n);int mx = -1, mi = 101, sum = 0;for (int i = 0; i < n; i++) {int x;scanf("%d", &x);mx = max(mx, x);mi = min(mi, x);sum += x;}printf("%d\n", mx);printf("%d\n", mi);printf("%.2f\n", 1.0 * sum / n);return 0;
}

大题2

题意:首先介绍了八位数字表示日期,如2020年2月2日表示为20200202,现在给出一个八位数字表示的日期,保证合法且年份在1000至8999之间,分别求该日期之后的第一个满足以下条件的日期的八位表示并输出(分别输出两个):

1、八位表示下是回文串的日期;
2、八位表示下是ABABBABA的日期。

题解:一天一天加,每加一次都判断年月日是否符合规定(算闰年之类的), 转化成字符串后,再判断是否为回文。 洋洋洒洒写了一百多行。
老老实实写模拟准没错。

代码

#include <bits/stdc++.h>
using namespace std;
const int month[2][13] = {{ 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },{ 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
};
string my_to_string(int n) {string s;do {s += '0' + n % 10;n /= 10;} while (n);reverse(s.begin(), s.end());return s;
}
int my_stoi(const string &s) {int res = 0;for (int i = 0; i < int(s.size()); i++) {res = res * 10 + s[i] - '0';}return res;
}
bool is(int year) {return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
bool legal(const string &s) {int y = my_stoi(s.substr(0, 4));int m = my_stoi(s.substr(4, 2));int d = my_stoi(s.substr(6, 2));if (m < 1 || m > 12) return false;if (d < 1 || d > month[is(y)][m]) return false;return true;
}
int main() {ios::sync_with_stdio(false);cin.tie(0);vector<int> v1, v2;for (int i = 1000; i <= 9999; i++) {string s1(my_to_string(i));string s2(s1.rbegin(), s1.rend());string s = s1 + s2;string t(s.rbegin(), s.rend());if (legal(s)) {if (s == t) {v1.push_back(my_stoi(s));}if ((s[0] == s[2] && s[2] == s[5] && s[5] == s[7]) && (s[1] == s[3] && s[3] == s[4] && s[4] == s[6]) && (s[0] != s[1])) {v2.push_back(my_stoi(s));}}}int n;cin >> n;cout << *upper_bound(v1.begin(), v1.end(), n) << "\n";cout << *upper_bound(v2.begin(), v2.end(), n) << "\n";return 0;
}

大题三

题意:对于字符串s,定义一个f(s)表示该串中出现恰好一次的字母的个数,现在给出一个字符串S,串长105,求其所有子串t的Σf(t)。

样例:ababc输出21。

题解:当初直接用三重循环暴力解的, 下面的代码是满分答案

代码

#include <bits/stdc++.h>
using namespace std;
int main() {ios::sync_with_stdio(false);cin.tie(0);string s;cin >> s;int n = s.size();vector<vector<int> > pos(26);for (int i = 0; i < 26; i++) {pos[i].push_back(-1);}for (int i = 0; i < n; i++) {pos[s[i] - 'a'].push_back(i);}for (int i = 0; i < 26; i++) {pos[i].push_back(n);}long long ans = 0;for (int i = 0; i < 26; i++) {for (int j = 1; j + 1 < int(pos[i].size()); j++) {int l = pos[i][j] - pos[i][j - 1] - 1;int r = pos[i][j + 1] - pos[i][j] - 1;ans += 1LL * (l + 1) * (r + 1);}}cout << ans << "\n";return 0;
}

只更到这里吧, 部分代码凭借记忆敲得, 部分代码参考了网上的思路。 这些都做出来, 省一一定是稳稳地了, 至于大题4和5, 有思路会后续更新的, 请持续关注~

2020年十月蓝桥杯A组题解【10月17日】【附完整代码】相关推荐

  1. 【10月17日】2020年十月蓝桥杯A组题目【感想与总结】(热乎的)

    二更: A掉三小题三大题, 拿到省二~ 有点失望, 不过还可接受 题解链接-->传送门 ----------------------------------------------------- ...

  2. 2020十月蓝桥杯B组省赛

    2020十月蓝桥杯B组省赛 蓝桥的背景 试题 A: 门牌制作 试题 B: 既约分数 试题 C: 蛇形填数 试题 D: 跑步锻炼 试题 E: 七段码 试题 F: 成绩统计 结束赠言: 既然选择了远方,何 ...

  3. 2018年10月17日普级B组【模拟赛】

    2018年10月17日普级B组模拟赛2018年10月17日普级B组模拟赛2018年10月17日普级B组模拟赛 第一题--ISBN号码第一题--ISBN号码第一题--ISBN号码 博客链接: https ...

  4. 2022年_蓝桥杯_省赛_4月23日真题_第十三届_python_第六题_小蓝对角线找奖品

    蓝桥杯真题又来了啊,上题目: 题目: (注.input()输入函数的括号中不允许添加任何信息) 编程实现: 有一个N*M的矩阵方格,其中有些方格中有奖品,有些方格中没有奖品.小蓝需要从N*M的矩阵中选 ...

  5. 2020年10月17日第十一届蓝桥杯第二场省赛试题及详解(Java本科B组)

    结果填空 (满分5分) 结果填空 (满分5分) 结果填空 (满分10分) 结果填空 (满分10分) 结果填空 (满分15分) 程序设计(满分15分) 程序设计(满分20分) 程序设计(满分20分) 程 ...

  6. 2022第十三届蓝桥杯web组题解

    文章目录 01水果拼盘 题目 解答 02展开你的扇子 题目 解答 03和手机相处的时光 题目 解答 04灯的颜色变化 题目 解答 05冬奥大抽奖 题目 解答 06蓝桥知识网 题目 解答 07布局切换 ...

  7. 第十二届蓝桥杯A组省赛填空题Java思路及代码合集(相乘直线货物摆放路径回路计数)

    文章目录 试题 A: 相乘 试题 B: 直线 试题 C: 货物摆放 试题 D: 路径 试题 E: 回路计数 试题 A: 相乘 本题总分:5 分 [问题描述] 小蓝发现,他将 1 至 100000000 ...

  8. 【蓝桥杯Java_C组·从零开始卷】第二节(附)、if与switch效率比较(千万次/一亿次)

    前言: 分支数 小于三时,else if 效率更高 等于三时,效率近乎相同 大于三时,switch case效率更高 if与switch小于三次对比: package Action;public cl ...

  9. 深圳大学李猛教授报告:海洋古菌的微生物组学(11月17日晚7点)

    直播平台:腾讯会议(会议ID:455647378,密码:202020) 直播链接:https://meeting.tencent.com/l/E82ZAkdnFrfA      李猛,深圳大学高等研究 ...

最新文章

  1. 微软亚洲互联网工程院招聘NLP算法工程师、AI应用科学家
  2. Mysql数据库五大常用数据引擎
  3. SwiftTour基础学习(五)控制流
  4. a5松下驱动器参数设置表_松下A5,A6伺服电机参数设置
  5. H.264协议:Annex B格式和AVCC格式
  6. 【论文学习】Abnormal behavior recognition for intelligent video surveillance systems: A review
  7. A卡核显N卡独显笔记本Deepin20环境下配置双显卡驱动和CUDA
  8. 计算机实训实验报告,审计实务实验报告总结审计实训实验报告计算机审计实验总结...
  9. 利用计算机打开电视盒子,原来还可以把旧笔记本电脑当电视盒子用!
  10. 详谈redis命令之集合(SET)
  11. word中插入手写的电子签名
  12. MySQL 字符类型大小
  13. 联想t450怎么重置计算机,韩博士教你联想t450s如何一键安装win10
  14. 实现Python3.7下从Tushare库的LPR贷款基础利率接口获取实时数据
  15. html的标记符一般不分大小写,HTML5标记符的属性一般不区分大小写。
  16. DownloadManager下载管理
  17. 阿里云OSS集成百度Ueidtor
  18. RGB、HSL、HSV及各种颜色选择器界面
  19. 计算机辅助设计高级绘图员技能鉴定试题,计算机辅助设计高级绘图员技能鉴定试题第二卷...
  20. 篮球随记-系列赛输了怎么办?

热门文章

  1. 内推|底层翻身的机会来了,快来看一看!
  2. 网络协议,我明明学过的呀?
  3. 全面解析 Netflix 的微服务架构设计
  4. 服务容错、限流、资源隔离、熔断、监控…3天,撸完了!
  5. IO多路转接之epoll
  6. 为什么视频压缩如此重要
  7. B站直播中HLS和去中心化P2P的实际应用
  8. 【线上分享】下一代互联网通讯协议:QUIC
  9. WebRTC的现状和未来:专访W3C WebRTC Chair Bernard Aboba(下)
  10. 音视频技术开发周刊 | 174