社区讨论
70分求调
B4095 [CSP-X2021 山东] 口袋参与者 1已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mhjdm1it
- 此快照首次捕获于
- 2025/11/04 00:50 4 个月前
- 此快照最后确认于
- 2025/11/04 00:50 4 个月前
CPP
#include <iostream>
#include <string>
#include <unordered_map>
#include <algorithm>
#include <climits>
using namespace std;
int max_occurrences(const string& x, const string& s) {
unordered_map<char, int> count;
for (char c : s) {
count[c]++;
}
count['2'] += count['5'];
count['5'] = count['2'];
count['6'] += count['9'];
count['9'] = count['6'];
unordered_map<char, int> x_count;
for (char c : x) {
x_count[c]++;
}
int max_possible = INT_MAX;
for (auto& pair : x_count) {
char d = pair.first;
int required = pair.second;
int available;
if (d == '2' || d == '5') {
available = count['2'];
} else if (d == '6' || d == '9') {
available = count['6'];
} else {
available = count[d];
}
if (available < required) {
return 0;
}
max_possible = min(max_possible, available / required);
}
return max_possible;
}
int main() {
string x, s;
cin >> x >> s;
cout << max_occurrences(x, s) << endl;
return 0;
}
//改对必关
回复
共 1 条回复,欢迎继续交流。
正在加载回复...