2020年第十一届蓝桥杯省赛 第二场(10月17日)B组个人题解
A
找出来1到2020之间数位为2的数量。
不用特别去考虑,直接循环即可
B
求分子分母最小因子为1的。
跑两个for循环,写一个gcd就可以了
答案:2481215
int main() {
// freopen("in.txt","r",stdin);
ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
int cnt = 0;
for (int i = 1; i <= 2020; ++i)
for (int j = 1; j <= 2020; ++j) cnt += __gcd(i, j) == 1;
cout << cnt << endl;
}
//另一种写法
int main() {
// freopen("in.txt","r",stdin);
ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
int cnt = 0;
for (int i = 1; i <= 2020; ++i)
for (int j = i + 1; j <= 2020; ++j) cnt += __gcd(i, j) == 1;
cout << (cnt << 1) + 1 << endl;
}
//本质是一样的
C
蛇形图(20,20)这个位置的数是几。
可以用等差数列做一下。
或者暴力跑
答案:761
// Author : RioTian
// Time : 20/10/18
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
// freopen("in.txt","r",stdin);
ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
bool flag = true;
for (int x = 1, y = 1, k = 1;; k++) {
if (x == 20 && y == 20) {
cout << k << endl;
break;
}
if (flag)
if (x - 1) --x, ++y;
else ++y, flag = false;
else if (y - 1) ++x, --y;
else ++x, flag = true;
}
}
D
跑步
从2000/01/01到202010/01
周一跑2km,月初跑2km,其他都跑1km
直接模拟就好了
E
感觉好多大佬都做出来了
思路和代码来自网络:
一共七个灯管,状态压缩枚举所有状态,然后dfs搜一下是否连通。
F
计算合格率,优秀率
扩大计算即可
G
从输入的年份开始枚举到9999,找到符合条件的就break;
找回文类型的年份+月份+日期
20200202 和 ABABBABA 类型
个人思路是直接暴力向上递推时间
H
算所有区间不同字母的个数。
第一眼想到用树状数组解,但太久没写了。放弃。。。
直接暴力模拟,骗50%数据
赛后重新想了下,应该计算每个字母的贡献值,假设每个区间都是第一个出现的字母贡献,则每个字母贡献值是左边没出现相同字母乘上右边到最后的长度
i
没怎么接触过,估计凉了。
j
emmm,完全打表写前面的数据了
蒟蒻表示希望不会打铁
分类:
刷题笔记: 蓝桥杯
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 全程不用写代码,我用AI程序员写了一个飞机大战