题目解释+代码
原题链接:837.Herdle--Bronze2025-07-09 21:56:39
发布于:江苏
first:
奶牛们发明了一种名为“Herdle”的新型谜题,在牛界迅速走红。
每天都会发布一个新谜题供奶牛们破解。谜题形式为一个代表农场草地的3×3方格,每个方格由特定品种的奶牛占据。共有26种可能的品种,分别用大写字母A到Z表示。玩家无法直接看到草地上的品种分布,目标是通过一系列猜测找出正确答案。
每次猜测时,奶牛们提交一个由大写字母组成的3×3方格作为可能答案。某些方格可能完全正确(品种和位置均匹配),这些方格会标为绿色;另一些方格的品种正确但位置错误,则标为黄色。黄色方格的数量能间接反映特定品种的奶牛数量。
second:#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
int main() {
std::ios_base::sync_with_stdio(false);
std::cin.tie(NULL);
// 1. Read input grids
std::vector<std::string> answer(3);
std::vector<std::string> guess(3);
for (int i = 0; i < 3; ++i) {
std::cin >> answer[i];
}
for (int i = 0; i < 3; ++i) {
std::cin >> guess[i];
}
int green_count = 0;
int yellow_count = 0;
for (int r = 0; r < 3; ++r) {
for (int c = 0; c < 3; ++c) {
if (guess[r][c] == answer[r][c]) {
green_count++;
answer[r][c] = '1';
guess[r][c] = '2';
}
}
}
int answer_freq[26] = {0};
int guess_freq[26] = {0};
for (int r = 0; r < 3; ++r) {
for (int c = 0; c < 3; ++c) {
if (answer[r][c] != '1') {
answer_freq[answer[r][c] - 'A']++;
}
if (guess[r][c] != '2') {
guess_freq[guess[r][c] - 'A']++;
}
}
}
for (int i = 0; i < 26; ++i) {
yellow_count += std::min(answer_freq[i], guess_freq[i]);
}
std::cout << green_count << std::endl;
std::cout << yellow_count << std::endl;
return 0;
}
这里空空如也
有帮助,赞一个