搬运我的洛谷题解,原文创作时间:2026-02-14 21:28。

思路:

这道题是纯模拟题,根据题意解即可。

直接上代码。

代码:

考虑到我的题解思路部分好像不够多,于是我在代码里加了亿点注释!

::::info[代码]

//考虑到我的题解思路部分好像不够多,于是我在代码里加了亿点注释!
#include <bits/stdc++.h>
using namespace std;
int main(){
    string biao[4]={"blue","brown","green"};//基础表
    string p1,p2,c;//p1是父亲的眼睛颜色,p2是母亲的,c是后代的。
    cin>>p1>>p2>>c;//输入
    vector<vector<string>>r;//用于记录正确结果
    //由于只有三种眼色,所以直接暴力三重循环求解,暴力出奇迹!
    for(int i=0;i<3;i++){
        for(int j=0;j<3;j++){
            for(int k=0;k<3;k++){
                string a=biao[i],b=biao[j],ch=biao[k];
                if((p1=="."||a==p1)&&(p2=="."||b==p2)&&(c=="."||ch==c)&&((a=="brown"||b=="brown")?ch=="brown":(a=="green"||b=="green")?ch=="green":ch=="blue")){//判断
                    r.push_back({a,b,ch});//符合条件加入结构集
                }
            }
        }
    }
    //来个排序
    sort(r.begin(),r.end());
    //如果无正确结构则输出Incorrect
    if(r.empty()) cout<<"Incorrect";
    else{
        //否则则遍历结果集输出
        for(auto it:r){
            cout<<it[0]<<" "<<it[1]<<" "<<it[2]<<endl;
        }
    }
    return 0;
}