提交记录 6988


用户 题目 状态 得分 用时 内存 语言 代码长度
1176321897 1000i. 【传统题】 A+B Problem Compile Error 0 0 ns 0 KB C++ 1.31 KB
提交时间 评测时间
2018-12-03 22:35:05 2020-08-01 00:55:25
#include <stdio.h>
#include <string.h>

int data[9][9], try[9][9];

void init()
{
    int i, j;
    for(i = 0; i < 9; ++i)
        for(j = 0; j < 9; ++j)
            try[i][j] = 511;
    return;
}

int dfs(int x, int y)
{
    int nx, ny, t, bit = 1, xt, yt, b = 1, i, j;
    int try0[9][9];
    if (y == 9) return 1;
    if (x == 8)
    {
        nx = 0; ny = y + 1;
    }
    else
    {
        nx = x + 1; ny = y;
    }
    if (data[x][y]) return dfs(nx, ny);
    for (t = try[x][y]; t; t >>= 1, bit <<= 1, ++b)
        if (t & 1)
        {
            memcpy(*try0, *try, 81 * sizeof(int));
            bit = ~bit;
            xt = x / 3 * 3; yt = y / 3 * 3;
            for (i = 0; i < 3; ++i)
                for (j = 0; j < 3; ++j)
                {
                    try[3 * j + i][y] &= bit;
                    try[x][3 * j + i] &= bit;
                    try[xt + i][yt + j] &= bit;
                }
            bit = ~bit;
            data[x][y] = b;
            if (dfs(nx, ny)) return 1;
            memcpy(*try, *try0, 81 * sizeof(int));
            data[x][y] = 0;
        }
    return 0;
}

int print()
{
    int i, j;
    for (i = 0; i < 9; ++i)
    {
        for (j = 0; j < 9; ++j)
            printf("%d ", data[i][j]);
        printf("\n");
    }
}

int main()
{
    init();
    dfs(0, 0);
    print();
    return 0;
}

CompilationN/AN/ACompile ErrorScore: N/A


Judge Duck Online | 评测鸭在线
Server Time: 2026-04-09 04:07:44 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠