2024年第15届蓝桥杯c++B组国赛个人题解(个人备赛)
·
A 合法密码(暴力)

思路
字符串截取分段:substr()函数
检查参数是否为阿拉伯数字0到9:isdigit()函数
代码:
#include <bits/stdc++.h>
using namespace std;
#define int long long
//判断字符串是否符合条件
bool qw( string& s) {
int num = 0, sym = 0;
for (char c : s) {
if (isdigit(c)) num += 1;
if (!isalnum(c)) sym += 1;
}
return num > 0 && sym > 0;
}
signed main() {
//关闭输入输出流的同步,以提高程序的执行效率。
cin.tie(0);
cout.tie(0);
ios::sync_with_stdio(false);
string s = "kfdhtshmrw4nxg#f44ehlbn33ccto#mwfn2waebry#3qd1ubwyhcyuavuajb#vyecsycuzsmwp31ipzah#catatja3kagbcss2th";
int n = s.size();
int num = 0;
//第一个循环限制增长字符串长度
//第二个循环遍历整个字符串
for (int len = 8; len <= 16; ++len) {
for (int i = 0; i <= n - len; ++i) {
string x = s.substr(i, len);
if (qw(x)) {
num += 1;
}
}
}
cout << num << endl;
return 0;
}
B 选数概率

思路1:
根据已知条件条件求得a,b,c三个值的比值,最简比值及是最小解。
将三个概率分母变为想同值,分子三个分子即可求得
a*b=2585
b*c=2632
a*c=1540
三个未知数,三个公式可求得三个比值
a:b:c=3980900:6803720:4053280
化简可知 式子同除72380可得
a:b:c=55:94:56
思路2:
概率公式:
代码暴力枚举。
C 题:蚂蚁开会

思路:
代码:
更多推荐

所有评论(0)