题目解释+代码
原题链接: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;
}
这里空空如也












有帮助,赞一个