蒟蒻求助(T-T),实在不知道是哪里的问题
查看原帖
蒟蒻求助(T-T),实在不知道是哪里的问题
654164
JoshuaZheng楼主2022/5/31 14:59
#include<bits/stdc++.h>
using namespace std;
vector<char> letter[5];
string ans;
int cur = 0;
bool dfs(int k,string s,int i){
    if(k==cur){
        cout << s << endl;
        return true;
    }
    if(i>4)
        return false;
    for (int j = 0;j<letter[i].size();j++){
        if(i==4)
        cur++;
        if(dfs(k,s+letter[i][j], i + 1))
            return true;
    }
    return false;
}
void solve(){
    int k;
    cin >> k;
    vector<string> s1, s2;
    for (int i = 0; i < 5;i++){
        letter[i].clear();
    }
    for (int i = 0; i < 6; i++)
    {
        string s;
        cin >> s;
        s1.push_back(s);
    }
    for (int i = 0; i < 6;i++){
        string s;
        cin>>s;
        s2.push_back(s);
    }
    map<char, int> mp;
    for (int i = 0; i < 5;i++){
        for (int j = 0; j < 6;j++){
            mp[s1[j][i]]++;
            mp[s2[j][i]]++;
        }
        for(auto&p:mp){
            if(p.second>=2){
                letter[i].push_back(p.first);
            }
        }
        sort(letter[i].begin(), letter[i].end());
        mp.clear();
    }
        cur = 0;
        string s;
        if(!dfs(k,s,0))
            cout << "NO" << endl;
}

int main()
{
    ios::sync_with_stdio(false);
    int t=1;
    cin >> t;
    while(t--)
    {
        solve();
    }
    system("pause");
    return 0;
}
2022/5/31 14:59
加载中...