codevs 2924 数独挑战(dfs)

数独的最优算法 Dance Linking 这是用 Dance Linking 做的一个数独的实现 速度很快 立即下载

*PS:神级数独作弊器QWQ。。。

go to the problem

题目描述 Description

“芬兰数学家因卡拉,花费3个月时间设计出了世界上迄今难度最大的数独游戏,而且它只有一个答案。因卡拉说只有思考能力最快、头脑最聪明的人才能破解这个游戏。”这是英国《每日邮报》2012年6月30日的一篇报道。这个号称“世界最难数独”的“超级游戏”,却被扬州一位69岁的农民花三天时间解了出来。

看到这个新闻后,我激动不已,证明我们OI的实力的机会来了,我们虽然不是思考能力最快、头脑最聪明的人,但是我们可以保证在1s之内解题。

好了废话不多说了……

数独是一种填数字游戏,英文名叫Sudoku,起源于瑞士,上世纪70年代由美国一家数学逻辑游戏杂志首先发表,名为Number Place,后在日本流行,1984年将Sudoku命名为数独,即“独立的数字”的省略,解释为每个方格都填上一个个位数。2004年,曾任中国香港高等法院法官的高乐德(Wayne Gould)把这款游戏带到英国,成为英国流行的数学智力拼图游戏。

  玩家需要根据9×9盘面上的已知数字,推理出所有剩余位置(数据表示为数字0)的数字,并满足每一行、每一列、每一个粗线宫内的数字均含1-9,不重复。

现在给你一个数独,请你解答出来。每个数独保证有解且只有一个。

输入描述 Input Description

9行9列。

每个数字用空格隔开。0代表要填的数

行末没有空格,末尾没有回车。

输出描述 Output Description

输出答案。

排成9行9列。

行末没有空格,结尾可以有回车。

样例输入 Sample Input

2 0 0 0 1 0 8 9 0
0 0 7 0 0 0 0 0 0
0 0 0 9 0 0 0 0 7
0 6 0 0 0 1 3 0 0
0 9 0 7 3 4 0 8 0
0 0 3 6 0 0 0 5 0
6 0 0 0 0 2 0 0 0
0 0 0 0 0 0 1 0 0
0 5 9 0 8 0 0 0 3

样例输出 Sample Output

2 4 5 3 1 7 8 9 6
9 1 7 2 6 8 5 3 4
3 8 6 9 4 5 2 1 7
4 6 2 8 5 1 3 7 9
5 9 1 7 3 4 6 8 2
8 7 3 6 2 9 4 5 1
6 3 8 1 7 2 9 4 5
7 2 4 5 9 3 1 6 8
1 5 9 4 8 6 7 2 3

数据范围及提示 Data Size & Hint

保证有解,每个数独都由http://oubk.com数独网提供。

其中数据hard1.in为芬兰数学家提供。

暴搜,直接贴代码qwq。

代码
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;

int need,can=0;
int a[15][15],hang[15][15],lie[15][15],gong[4][4][15],h[15];

void Done(int x,int y,int z,int t)
{
    hang[x][z]=t;
    lie[y][z]=t;
    gong[(x-1)/3][(y-1)/3][z]=t;
}
void dfs(int x,int y,int rest,int p) // 搜到x行的第y个位置
{
    if(rest==0) 
    {
        can=1;
        for(int i=1;i<=9;++i)
        {
           for(int j=1;j<=8;++j)
               cout<<a[i][j]<<' ';
           cout<<a[i][9]<<'\n';
        }
        return ;
    }   
    if(can) return ;
    int j=0;
    for(int i=1;i<=9;++i) 
       if(!a[x][i]) j=i,i=9;  //找出当前行没填的第一个的位置
    if(j)  // 还有没填的
       for(int i=1;i<=9;++i)
         if(!a[x][j]&&!hang[x][i]&&!lie[j][i]&&!gong[(x-1)/3][(j-1)/3][i])
         {
             a[x][j]=i;    //填上
             Done(x,j,i,1);
             dfs(x,j,rest-1,p+1);
             if(can) return ;
             a[x][j]=0;   //拿出
             Done(x,j,i,0);
         }
   if(p==(9-h[x])) dfs(x+1,1,rest,0); //都填满了就填下一行。
}
int main()
{
    for(int i=1;i<=9;++i)
      for(int j=1;j<=9;++j)
      {
          scanf("%d",&a[i][j]);
          if(a[i][j])
          {
             Done(i,j,a[i][j],1);
             ++need,++h[i];
          }
      }
    dfs(1,1,81-need,0);
    return 0;
} 
HTML5期末大作业:关于家乡介绍的HTML网页设计——郑州美景HTML+CSS(5页) 学生DW家乡介绍网页设计作业成品 web课程设计网页规划与设计 HTML5期末大作业:我的家乡——郑州美景HTML+CSS(5页) 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 明星、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他 等网页设计题目, A+水平作业, 可满足大学生网页大作业网页设计需求, 喜 阅读详情

相关推荐

从代码学习深度强化学习 - 目标导向的强化学习-HER算法 PyTorch版

经典的深度强化学习算法,如 PPO、SAC 等,在各自擅长的任务中都取得了非常好的效果。但它们通常都局限在解决单个任务上,换句话说,训练好的算法,在运行时也只能完成一个特定的任务。想象一个场景:我们想让一个机械臂能把桌子上的任何一个物体重置到任意一个指定位置。对于传统强化学习而言,如果目标物体的初始位置和目标位置每次都变化,那么这就是一个全新的任务。即便任务的“格式”——抓取并移动——是一样的,但策略本身可能需要重新训练。这显然效率极低。为了解决这类问题,

weixin_43887510的博客 1499

codevs 数独系列 题解报告

4966 简单数独 4491 验证数独 2207 验证数独 2924 数独挑战 1174 靶形数独一共5道题目,全都和数独有关:4966 简单数独 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 某一天,小强忽然迷上了数独,他想从最简单的数独做起,即4*4的数独,然而他仍然做不出来,所以想请你帮帮他。4*4即

xu326057825的博客 1300

便携式水下动态实时视频色彩还原设备,一键快速实现对水下偏色视频和图像的色彩还原处理

便携式水下动态实时视频色彩还原,一键快速对水下图像进行色彩校正,清晰度提升和亮度均衡处理,为水下资源勘探和科学考古,海洋生态环境监测,水下机器作业等应用提供有力的协助

weixin_43518680的博客 633

CodeVS 2924 数独挑战 题解

#include #include using namespace std; int board[9+2][9+2]; bool Const[9+2][9+2]; bool row[9+2][9+2], col[9+2][9+2], pal[9+2][9+2]; int PAL[9+2][9+2]={ {1, 1, 1, 2, 2, 2, 3, 3, 3}, {1, 1,

AnHongjun的博客 515

DenseNet训练实践

在Cifar10上训练DenseNet,复现DenseNet论文的结果是后面两篇分析工作的基础,因此本系列的第一篇,将首先讨论深度学习的训练过程中的几个方面: 1. 数据集 1.1 Cifar10数据集 Cifar10数据集有6万张32X32的图片,是一个小型的数据集,但数据的复杂度足够,下图来自DenseNet论文,可以看出,不用数据增强的话,ResNet的正确率也很难超过90%,因而足以用来验...

一蓑烟雨任平生 1万+

360加固DEX解密与ELF修复技术解析

本文深入解析了360加固APK的逆向分析技术,重点探讨了其DEX解密与ELF文件修复的核心流程。通过动态调试与Frida脚本,详细拆解了壳的启动机制、反调试绕过、自实现Linker技术,并还原了基于RC4和自定义算法的多层DEX解密过程,为移动安全研究人员提供了实用的实战分析思路。

alice7model的博客 701

codevs 2924 数独

数独挑战 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codevs.cn/problem/2924/ Description “芬兰数学家因卡拉,花费3个月时间设计出了世界上迄今难度最大的数独游戏,而且它只有一个答案。因卡拉说只有思考能力最快、头脑最聪明的人才能破解这个游戏。”这是英国《每日邮报》2012年...

weixin_30544657的博客 227

2024年物联网嵌入式最新嵌入式期末大作业——家用智能晾衣杆,初面蚂蚁金服

在家用智能晾衣杆中,用户可以根据自身的需要,切换手动和自动两个模式。天气对应的接口对应心知天气的天气图,可以下载后:调整尺寸->调整透明度->用画图工具保存为单色位图->提取出点阵信息(如我用的zimoV2.2软件),将点阵信息,存到数组里,根据weather的信息,调用display.drawBitmap()方法就能打印出对应的天气了。该库依赖于,将他们导入后,设置屏幕的主从关系,片选信号和数据,时钟信号等引脚后,就设置好屏幕的驱动。

2401_85013604的博客 1247

codevs2924数独挑战 深度优先搜索

题目链接:loi_dqs Orz 题目描述: “芬兰数学家因卡拉,花费3个月时间设计出了世界上迄今难度最大的数独游戏,而且它只有一个答案。因卡拉说只有思考能力最快、头脑最聪明的人才能破解这个游戏。”这是英国《每日邮报》2012年6月30日的一篇报道。这个号称“世界最难数独”的“超级游戏”,却被扬州一位69岁的农民花三天时间解了出来。 看到这个新闻后,我激动不

Loi_Seavot的博客 1190

汽车标定技术(五)--基于模型开发如何生成完整的A2L文件(1)

A2L文件的生成分为两章讲解:本文主要是讲模型开发,讲解如何把标定量、观测量放到链接文件中的指定位置。下一篇讲解如何使用matlab生成完整的A2L文件

认真搞搞汽车MCU 4617

STM32F407最小系统硬件设计与CubeMX工程实践

嵌入式最小系统是MCU功能实现的物理基础,其核心涵盖供电网络、时钟架构、复位机制与调试接口四大模块。基于Cortex-M4内核的STM32F407对电源纹波、晶振稳定性及信号完整性提出严苛要求:模拟电源VDDA需<10mV纹波,HSE晶振布线须满足短距直连与匹配电容精准配置,SWD调试接口依赖50Ω阻抗控制与端接防护。这些硬件约束直接映射至STM32CubeMX配置——如RCC时钟树参数必须与实物晶振频率严格一致,GPIO模式需匹配外设电气特性(如I2C必选开漏),否则将引发通信失败或启动异常。典型应用场景

weixin_35592186的博客 173

codevs 2924 数独挑战 x(三种做法+超详细注释~)

2924 数独挑战 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 钻石 Diamond 题目描述Description “芬兰数学家因卡拉,花费3个月时间设计出了世界上迄今难度最大的数独游戏,而且它只有一个答案。因卡拉说只有思考能力最快、头脑最聪明的人...

anjian3128的专栏 269

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

codevs2924 数独挑战

2924 数独挑战  时间限制: 1 s  空间限制: 1000 KB  题目等级 : 钻石 Diamond 题解   题目描述 Description   “芬兰数学家因卡拉,花费3个月时间设计出了世界上迄今难度最大的数独游戏,而且它只有一个答案。因卡拉说只有思考能力最快、头脑最聪明的人才能破解这个游戏。”这是英国《每日邮报》2012年6月30日的一篇报道。这个号称“世界最难数独

Soda 370

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

codevs 2924 数独挑战

2924 数独挑战 http://codevs.cn/problem/2924/ 题目描述Description “芬兰数学家因卡拉,花费3个月时间设计出了世界上迄今难度最大的数独游戏,而且它只有一个答案。因卡拉说只有思考能力最快、头脑最聪明的人才能破解这个游戏。”这是英国《每日邮报》2012年6月30日的一篇报道。这个号称“世界最难数独”的“超级游戏...

weixin_33781606的博客 127

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

2924 数独挑战

题目描述 Description “芬兰数学家因卡拉,花费3个月时间设计出了世界上迄今难度最大的数独游戏,而且它只有一个答案。因卡拉说只有思考能力最快、头脑最聪明的人才能破解这个游戏。”这是英国《每日邮报》2012年6月30日的一篇报道。这个号称“世界最难数独”的“超级游戏”,却被扬州一位69岁的农民花三天时间解了出来。 看到这个新闻后,我激动不已,证明我们OI的实力的机会来了,我们虽然不

css 406

数独挑战(codevs 2924)

2924 数独挑战 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述Description “芬兰数学家因卡拉,花费3个月时间设计出了世界上迄今难度最大的数独游戏,而且它只有一个答案。因卡拉说只有思考能力最快、头脑最聪...

weixin_30349597的博客 114

【题解】Codevs 2924 挑战数独,2806 红与黑,4163 hzwer与逆序对

2924 挑战数独   #include&lt;cstdio&gt; int row[9][10],col[9][10],code[3][3][10]; int ap,g[9][9],ok; struct Node{ int i,j; }a[100]; void dfs(int k){ if(ok)return; if(k==ap){ for(int ...

Chavin-Chen的博客 617

洛谷 P1784 数独[DFS/回溯]

To 洛谷.1784 数独 类似题:CODEVS.4966 简单数独(4*4数独)CODEVS.2924 数独挑战) 题目描述 数独是根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫内的数字均含1-9,不重复。每一道合格的数独谜题都有且仅有唯一答案,推理方法也以此为基础,任何无解或多解的题目都是不合格的。 芬兰一位数学家号称设计出全球最难的“数独游戏...

weixin_34127717的博客 268

sql注入解决方案

sql注入解决方案 mybatis Sql: <if test="safetyPageParam.caseStatus !=null and safetyPageParam.caseStatus != ''"> AND t2.channel_status in (${safetyPageParam.caseStatus}) </if> 问题: 使...

红星小学扛把子! 925

80ms 求解世上最难数独 —— DFS的灵活运用

最近写了好几道DFS相关的题目,想起以前玩过的一个游戏:数独,因为都是一个类型的思想,所以很快就想到了用 DFS来求解 数独,此文章来教你一步一步来实现一个数独模拟器 . . . . 相关文章: 蓝桥杯DFS经典题 —— 算式900、 寒假作业(告别枚举法) 我们需要求解的数独就是世界上最难的数独: 这个数独被当时一个 69岁的爷爷花了三天时间给算出了,有这样一个故事: 下面我将带大家手把手写出这样的一个小程序,来快速的求解出世上最难的数独 . . . 首先,我们都知道数独是有规则的,上面的数据不.

浪子花梦 1932

DFS专题(入门,经典为主)

接触了图论以后,我才发现搜索原来是那么的简单。由于最近刘老师给我们讲的图论题实在是不太能够消化,于是我就转向了搜索那一块,从此与搜索过上了幸福美好的生活。     最近突然才发现,搜索其实还是挺简单的。以前培训的时候,最害怕的就是搜索了,感觉完全听不懂。然而,现在随便翻一下黑皮书就明白了,我也不知道究竟是为什么。学会搜索后,就又有了一大波水题哈哈哈。     因为深搜题我已经刷了2个大周了,便

smhmzmh123的博客 2067
上一篇: <最小生成树模板·kruskal> 村村通、繁忙的都市
下一篇: 洛谷 1514 引水入城(记忆化搜索+DP)
Loi_Mapleleaf
博客等级 码龄10年 17粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值