1 solutions

  • 1
    @ 2025-5-9 18:30:14
    #include<bits/stdc++.h>
    using namespace std;
    bool dfs(vector<int> v)
    {
        if(v.size()==1)
        {
            return v[0]==24;
        }
        int n=v.size();
        for(int i=0;i<n;i++)
        {
            for(int j=i+1;j<n;j++)
            {
                vector<int> b;
                for(int k=0;k<n;k++)
                {
                    if(k==i||k==j) continue;
                    b.push_back(v[k]);
                }
                b.push_back(v[i]+v[j]); if(dfs(b)) return 1;
                b.pop_back();//删除最后一个元素 
                b.push_back(v[i]-v[j]); if(dfs(b)) return 1;
                b.pop_back();
                b.push_back(v[j]-v[i]); if(dfs(b)) return 1;
                b.pop_back();
                b.push_back(v[i]*v[j]); if(dfs(b)) return 1;
                b.pop_back();
                if(v[j]!=0)
                {
                    b.push_back(v[i]/v[j]); if(dfs(b)) return 1;
                    b.pop_back();
                } 
                if(v[i]!=0)
                {
                    b.push_back(v[j]/v[i]); if(dfs(b)) return 1;
                    b.pop_back();
                } 
            }
        }
        return 0;
    }
    int main()
    {
        vector<int> v;
        map<char,int> h={{'A',1},{'J',11},{'Q',12},{'K',13}};
        for(int i=0;i<4;i++)
        {
            char x; 
            cin>>x;
            int t;
            if(x>='2'&&x<='9')
            {
                t=x-'0';
            }
            else t=h[x];
            v.push_back(t);
        }
        if(dfs(v)) cout<<"Y";
        else cout<<"N";
        return 0;
    }
    
    • 1

    Information

    ID
    242
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    5
    Tags
    # Submissions
    12
    Accepted
    4
    Uploaded By