1 条题解

  • 0
    @ 2025-4-12 21:47:19

    C++ :

    #include<iostream>
    #include<algorithm>
    #include <vector>
    #include<string.h>
    #include<string>
    #include<ctype.h>
    #include<cmath>
    #include <queue>
    using namespace std;
    char str[100];  
    int num[10];  
    int len,sum;  
    bool dfs(int sum)
    {     
        if(sum > 31)  
            return 0;
        for(int i = 1; i <= 6; ++i)
        {  
            if(num[i] && sum+i<=31)
            {  
                --num[i];  
                if(dfs(sum+i) == 0)
                {  
                    ++num[i];  
                    return 1;  
                }  
                ++num[i];  
            }  
        }  
        return 0;  
    }  
    void solve();
    int main()
    {
        solve();
        return 0;
    }
    void solve()
    {   
        int i;
        while(scanf("%s",&str)!=EOF)
        {         
            for(i = 1; i <= 6; ++i)  
                num[i] = 4;  
            len = strlen(str);  
            sum = 0;  
            for(i = 0; i < len; ++i)
            {  
                --num[str[i]-'0'];  
                sum += str[i]-'0';  
            }   
            printf("%s ",str);  
            if(dfs(sum))  
                puts(len&1 ? "B" : "A");  
            else 
                puts(len&1 ? "A" : "B");  
        }  
    }
    
    • 1

    信息

    ID
    1674
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者