1 条题解

  • 0
    @ 2025-8-24 21:30:54

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar a___
    这个家伙很蒻,什么也没有留下qwq

    搬运于2025-08-24 21:30:54,当前版本为作者最后更新于2017-07-21 17:46:04,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    看完所有题解,写的都太复杂了!

    打个表不就行了吗

    代码:

    #include <iostream>
    #include <cstring>
    using namespace std;
    int hang[10]={0,//一整行连(编号1,2,3)
    1,1,1,
    2,2,2,
    3,3,3},
    lie[10]={0,//一整列连(编号4,5,6)
    4,5,6,
    4,5,6,
    4,5,6},
    djx1[10]={0,//左上↘右下对角线连(编号7)
    7,0,0,
    0,7,0,
    0,0,7},
    djx2[10]={0,//右上↙左下对角线连(编号8)
    0,0,8,
    0,8,0,
    8,0,0};
    int x[2][9];//两个人的棋每一种连法的连子数
    string s;
    int main()
    {
        cin>>s;
        int i,len=s.size();
        for (i=0;i<len;i++)
        {
            x[i%2][hang[s[i]-'0']]++;
            x[i%2][lie[s[i]-'0']]++;
            x[i%2][djx1[s[i]-'0']]++;
            x[i%2][djx2[s[i]-'0']]++;
                          //各种连法都++
        }
        for (i=1;i<=8;i++)
        if (x[0][i]==3){cout<<"xiaoa wins.\n";return 0;}//如果小a赢(连3个)
        else if (x[1][i]==3){cout<<"uim wins.\n";return 0;}//如果uim赢(连3个)
        cout<<"drew.\n";//都没赢就平局
        return 0;
    }
    
    • 1

    信息

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