欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > 蓝桥杯每日刷题c++

蓝桥杯每日刷题c++

2025/4/18 22:13:23 来源:https://blog.csdn.net/2401_88089822/article/details/147044842  浏览:    关键词:蓝桥杯每日刷题c++

 

目录

P9240 [蓝桥杯 2023 省 B] 冶炼金属 - 洛谷 (luogu.com.cn)

 P8748 [蓝桥杯 2021 省 B] 时间显示 - 洛谷 (luogu.com.cn)

P10900 [蓝桥杯 2024 省 C] 数字诗意 - 洛谷 (luogu.com.cn)

P10424 [蓝桥杯 2024 省 B] 好数 - 洛谷 (luogu.com.cn)

P8754 [蓝桥杯 2021 省 AB2] 完全平方数 - 洛谷 (luogu.com.cn)


P9240 [蓝桥杯 2023 省 B] 冶炼金属 - 洛谷 (luogu.com.cn)

可以设两个数组a和b,a中的数除以区间内的数永远等于b中的数,现在要找的就是这个区间。

a[i]/区间=b[i]可以转化为a[i]/b[i]=区间

先找区间内最大的数,该数如果要满足条件,那么该数就是a[i]/b[i]每一项中最小的数,遍历一遍即可找到

再找区间内最小的数,只要最大的数依次向下减一逐个验证即可

#include<iostream>
#include<algorithm>
#include<vector>
#include<climits>
using namespace std;
int main() {int n;cin >> n;vector<int> a(n);vector<int> b(n);int t = INT_MAX;int max = 0;for (int i =0; i < n; i++) {cin >> a[i] >> b[i];t = min(t, a[i] / b[i]);}for (int k = t; k >= 0; k--) {for (int i = 0; i < n; i++) {if (a[i] / k != b[i]) {cout << (k + 1) << " " << t << endl;return 0;}}}
}

 P8748 [蓝桥杯 2021 省 B] 时间显示 - 洛谷 (luogu.com.cn)

简单的时间转化计算,唯一要注意的点是怎么把0打印出来

#include<iostream>
using namespace std;
#define int long long
signed main() {int n;cin >> n;n /= 1000;n = n % (24 * 60 * 60);int hour = n / 3600;n %= 3600;int minute = n / 60;int second = n % 60;printf("%02lld:%02lld:%02lld", hour, minute, second);return 0;
}

P10900 [蓝桥杯 2024 省 C] 数字诗意 - 洛谷 (luogu.com.cn)

除1以外的奇数都符合,怎么找?奇数除以2,比如13/2==6,加上1,6+7=13

偶数的话,可以分解为奇数,比如24=8*3,3是符合的,那么这个偶数也是符合的,可以用等差数列的原理来证明

除了2的倍数,逐级往下分最后只能分出来1,但1是不符合的

所以问题转变成了找2的倍数有多少个

这里提供一种方法,2的倍数(假设为t)转换成2进制后只有一个1,其它位置都是0,所以只要判断(t & (t - 1)是否等于0,等于的话就是2的倍数

#include <iostream>
#define int long long
using namespace std;
signed main() {int n, t;cin >> n;int count = 0;for (int i = 0; i < n; i++) {cin >> t;if ((t & (t - 1)) == 0) count++;}cout << count << endl;return 0;
}

P10424 [蓝桥杯 2024 省 B] 好数 - 洛谷 (luogu.com.cn)

感觉在函数中用while循环是最方便的

#include<iostream>
using namespace std;
bool jud(int n) {//奇数false,偶数truebool flag = false;while (n) {if (flag) {//偶数位是奇数则不是好数if ((n % 10) % 2 != 0)return false;}else {//奇数位是偶数则不是好数if ((n % 10) % 2 == 0)return false;}n /= 10;flag = !flag;}return true;
}
int main() {int n;cin >> n;int count = 0;for (int i = 1; i <= n; i++) {if (jud(i))count++;}cout << count << endl;return 0;
}

P8754 [蓝桥杯 2021 省 AB2] 完全平方数 - 洛谷 (luogu.com.cn)

#include <iostream>
using namespace std;
#define int long long
signed main() {int n;cin >> n;int res = 1;for (int i = 2; i * i <= n; i++) {int count = 0;while (n % i == 0) {count++;n /= i;}if (count % 2 == 1) res *= i;}if (n > 1) res *= n;cout << res;return 0;
}

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词