`
zhouxiaojie
  • 浏览: 9193 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

2676Sudoku

    博客分类:
  • poj
poj 
阅读更多
这个题自己写的样例能过,但是提交总是output limit exceed。还没想明白到底哪里错了,
走过路过的帮忙看看哪里出问题?
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int a[20][20],n;
int hen[10][10],shu[10][10],kuai[10][10];
struct M
{
    int x,y,k;
}s[1300];
int f(int xx,int yy)
{
    if(xx>=1&&xx<=3&&yy>=1&&yy<=3)return 1;
    else if(xx>=4&&xx<=6&&yy>=1&&yy<=3)return 4;
    else if(xx>=7&&xx<=9&&yy>=1&&yy<=3)return 7;
    else if(xx>=1&&xx<=3&&yy>=4&&yy<=6)return 2;
    else if(xx>=4&&xx<=6&&yy>=4&&yy<=6)return 5;
    else if(xx>=7&&xx<=9&&yy>=4&&yy<=6)return 8;
    else if(xx>=1&&xx<=3&&yy>=7&&yy<=9)return 3;
    else if(xx>=4&&xx<=6&&yy>=7&&yy<=9)return 6;
    else if(xx>=7&&xx<=9&&yy>=7&&yy<=9)return 9;
}

int  dfs(int nn)
{
    int i,j,k,g;
    k=0;

    if(nn==-1)
    {
       for(i=1;i<=9;i++)
        {
            for(j=1;j<=9;j++)
            {
                cout<<a[i][j];
            }cout<<endl;
        }
        return 0;
    }
    else
    {
      for(i=1;i<=9;i++)
      {

        if(hen[s[nn].x][i]==1||shu[s[nn].y][i]==1||kuai[s[nn].k][i]==1||a[s[nn].x][s[nn].y]!=0)continue;
        if(hen[s[nn].x][i]==0&&shu[s[nn].y][i]==0&&kuai[s[nn].k][i]==0&&a[s[nn].x][s[nn].y]==0)
        {


            //cout<<s[nn].x<<" "<<s[nn].y<<" "<<i<<" "<<nn<<endl;
                a[s[nn].x][s[nn].y]=i;
                hen[s[nn].x][i]=1;shu[s[nn].y][i]=1;kuai[s[nn].k][i]=1;
               dfs(nn-1);

            a[s[nn].x][s[nn].y]=0;
            hen[s[nn].x][i]=0;shu[s[nn].y][i]=0;kuai[s[nn].k][i]=0;
        }

      }
    }
    return 0;
}
main()
{
    int cases,i,j,kk;
    scanf("%d",&cases);

    char c;
    for(int tt=0;tt<cases;tt++)
    {
        memset(a,0,sizeof(a));
        memset(s,0,sizeof(s));
        memset(hen,0,sizeof(hen));
        memset(shu,0,sizeof(shu));
        memset(kuai,0,sizeof(kuai));
        n=0;

        for(i=1;i<=9;i++)
        {
            for(j=1;j<=9;j++)
            {
                cin>>c;
                //if(c>='0'&&c<='9')
                a[i][j]= c-'0';
                kk=f(i,j);

                hen[i][a[i][j]]=1;
                shu[j][a[i][j]]=1;
                kuai[kk][a[i][j]]=1;
                if(a[i][j]==0)
                {
                    s[n].k=kk;
                    s[n].x=i;s[n].y=j;n=n+1;
                }
            }
        }



        dfs(n-1);


    }
}
分享到:
评论

相关推荐

    POJ2676-Sudoku

    标题“POJ2676-Sudoku”指向的是北京大学在线编程平台POJ上的一道题目,编号为2676,题目内容与经典的数独游戏有关。解题报告和AC(Accepted)代码是该问题解决方案的组成部分,通常包括对问题的理解、算法设计、...

    sudoku游戏源码下载

    Sudoku游戏是一种广受欢迎的逻辑解谜游戏,源自日本,其英文名Sudoku源自日语“数独”(すうどく)的罗马拼音。在这个游戏中,玩家需要在9x9的网格中填入数字,使得每一行、每一列以及每个3x3的小宫格内都包含1到9的...

    android sudoku 源码

    《Android Sudoku游戏源码解析》 Sudoku,一种源自日本的数字填充逻辑游戏,因其独特性和挑战性在全球范围内广受欢迎。在Android平台上,Sudoku游戏的实现也成为了许多开发者学习和实践Android应用开发的起点。本篇...

    Sudoku Up 2010

    《数独游戏Sudoku Up 2010详解与应用》 数独(Sudoku)是一种源自18世纪瑞士的逻辑解谜游戏,以其独特的规则和挑战性在全球范围内广受欢迎。"Sudoku Up 2010"是一款专为数独爱好者设计的游戏软件,其绿色版的特性使得...

    Sudoku.Programming.with.C.1484209966

    Sudoku Programming with C teaches you how to write computer programs to solve and generate Sudoku puzzles. This is a practical book that will provide you with everything you need to write your own ...

    android应用求解Sudoku制作简单讲究实用

    在Android平台上,开发一款Sudoku应用是一个非常有趣的项目,它能帮助用户锻炼逻辑思维和提高问题解决能力。本文将深入探讨如何使用Android Studio构建一个简洁而实用的Sudoku游戏应用,基于提供的“HelloSudoku”...

    Sudoku数独益智游戏(完美版1.1.1)

    本游戏界面简洁,并有如下功能: 1. 按照5级难度自动布局或手工布局,并具有计时功能 2. 具有“下一步”提示,和步骤追踪“回退”功能 3. 能够保存布局和求解进度 4. 可电脑求解“唯一解”和“所有解” ...

    Sudoku数读游戏

    《Sudoku数独游戏》是基于Linux环境的一款经典智力挑战游戏,它利用控制台(console)进行交互,深受程序员和数独爱好者喜爱。这款游戏的实现是参照了哈佛大学的课程内容,融合了计算机科学与数学的精髓,为玩家提供...

    The Mathematics of Sudoku (数独)

    这是一篇关于数独游戏算法的文章,希望对喜爱数独游戏的编程朋友有所帮助。英文版 This is an essay of The Mathematics of Sudoku. Hoping this paper is useful for game programmer.

    Sudoku solver in C++ (数独计算器)

    A Sudoku solver implemented in C++. It can solve a given Sudoku problem, or count the possibilities for all valid Sudoku grids.

    Excel VBA写的解sudoku的程序

    Excel VBA写的解sudoku的程序。在上面填上残缺数独,点击按钮即可在下方自动生成答案。

    数独求解程序-sudoku_new.zip

    数独求解程序-sudoku_new.zip 本帖最后由 213 于 2014-6-8 18:01 编辑 通过递归解数独 sudoku_new.zip 解数独 附件里主要有两个函数 sudoku_r_2.m 是递归程序的主体 ...

    sudoku game

    数独游戏是一款经典的逻辑解谜游戏,它源自18世纪的瑞士,后来在日本流行并得名“数独”(Sudoku)。在这个基于Java实现的数独游戏中,开发者提供了完整的源代码,使得对Java编程和数独算法感兴趣的用户可以学习、...

    SUDOKU Helper_sudoku_incomplete_

    《SUDOKU Helper: 完成不全的数独助手》 数独(Sudoku)是一种广受欢迎的逻辑解谜游戏,它通过填充数字来完成一个9x9的大方格,其中每个小方格内都包含1到9的数字,且每一行、每一列以及每一个3x3的小宫格内都不能有...

    sudoku_v1.rar

    本项目“sudoku_v1.rar”是利用LabVIEW解决经典的9x9数独问题的一个实例,针对2015版本的LabVIEW进行开发。数独是一种逻辑推理游戏,通过填写1到9的数字,使得每一行、每一列和每一个宫(3x3的小正方形区域)内的...

    Sudoku-Sudoku

    Sudoku-Sudoku

    Sudoku生成和解决

    本项目“Sudoku生成和解决”专注于创建数独游戏的生成器和解决器,并结合Qt框架来构建用户友好的图形界面。 首先,我们要理解数独的生成算法。通常,生成数独谜题有两种主要方法:回溯法和递归深度优先搜索(DFS)...

    sudoku.rar_The Program_sudoku

    It is the example of Sudoku solver. It is worked by adding your Sudoku sample into the program and it will help you solve the Sudoku. The Sudoku must be in either easy or medium level.

    Prolog和XPCE实现GUI的Sudoku

    在"**sudoku_gui.pl**"文件中,我们可以预期找到以下内容: 1. **数独模型**:首先,会有一个数独的模型,它可能包含定义数独状态的数据结构以及检查数独是否解决完的规则。这些规则可能包括检查每行、每列和每个3...

    prolog sudoku source

    标题中的"prolog sudoku source"指的是使用Prolog编程语言编写的数独求解程序源代码。Prolog是一种逻辑编程语言,常用于解决推理问题,包括各种逻辑和数学谜题,如数独。 描述中提到的"这是一个数独源文件,其中...

Global site tag (gtag.js) - Google Analytics