C++ 算法竞赛、07 周赛篇 | AcWing 第120场周赛
AcWing 第120场周赛
5146 最大GCD
不难发现,最大公约数的条件是
#include <bits/stdc++.h>
using namespace std;
int GCD(int a, int b) { return b ? GCD(b, a % b) : a; }
int main() {
int T;
cin >> T;
while (T--) {
int n;
cin >> n;
cout << GCD(n >> 1 << 1, n >> 1) << endl;
}
return 0;
}
5174⭐数量
不含 4 和 7 以外 只含 4 和 7,每位只有两种情况,最多到 1e9,即 个情况,爆搜枚举即可
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
LL n;
int ans;
void dfs(LL x) {
if (x > n) return;
if (x) ans++;
dfs(x * 10 + 4);
dfs(x * 10 + 7);
}
int main() {
cin >> n;
dfs(0);
cout << ans << endl;
return 0;
}
5148⭐字符串匹配
顺序随便调。统计两个字符串每个大小写字母出现多少次,然后每个字母独立看
- A 的完美匹配数量就是 两计数数组 A 字母数量最小值
- 两计数数组中删除 A 的完美匹配数量
- 此时,两计数数组中,A+a 字母数量最小值就是 不完美匹配数量
#include <bits/stdc++.h>
using namespace std;
int const N = 256;
int c1[N], c2[N];
int main() {
string s, t;
cin >> s >> t;
for (int i = 0; i < s.size(); i++) c1[s[i]]++;
for (int i = 0; i < t.size(); i++) c2[t[i]]++;
int bestCount = 0, secondCount = 0;
for (int i = 'A'; i <= 'Z'; i++) {
int lower = i + 32;
int min_A = min(c1[i], c2[i]);
int min_a = min(c1[lower], c2[lower]);
bestCount += min_A;
bestCount += min_a;
c1[i] -= min_A;
c1[lower] -= min_a;
c2[i] -= min_A;
c2[lower] -= min_a;
secondCount += min(c1[i] + c1[lower], c2[i] + c2[lower]);
}
cout << bestCount << " " << secondCount;
return 0;
}
也可以分开写
#include <bits/stdc++.h>
using namespace std;
int const N = 256;
int c1[N], c2[N];
int main() {
string s, t;
cin >> s >> t;
for (int i = 0; i < s.size(); i++) c1[s[i]]++;
for (int i = 0; i < t.size(); i++) c2[t[i]]++;
int bestCount = 0, secondCount = 0;
for (int i = 0; i < N; i++) {
int t = min(c1[i], c2[i]);
bestCount += t;
c1[i] -= t, c2[i] -= t;
}
for (int i = 'a'; i <= 'z'; i++) {
secondCount += min(c1[i] + c1[i - 32], c2[i] + c2[i - 32]);
}
cout << bestCount << " " << secondCount;
return 0;
}
分类:
C/C++
, Algorithm | 比赛,周赛
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?