POJ 2676 Sudoku

Verilog中generate for循环的5个实战技巧(附完整代码示例) 本文详细介绍了Verilog中generate for循环的5个高级实战技巧,包括参数化模块实例化、条件化生成、多维硬件结构实现等,并附有完整代码示例。这些技巧能显著提升FPGA开发效率,特别适合中级Verilog开发者学习应用。 阅读详情

题目描述,用程序模拟一下数独。

给你9*9的格子,空格用0表示,输出一种方案,使得每一行,每一列,以及每一宫(3*3)都分别由1-9的数字填入。输出任意方案即可。

解法,此题有各种解法,DFS即可AC。而Discuss说可以用Dancing Links,没用过额。。有空去研究研究。。

我这里用的是DFS+位运算加速判重。700ms水过。。

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int mp[10][10],x[10],y[10],e[10],p[3][3];
bool flag;
void DFS(int a,int b)
{
    int i,j,t1,t2,t3,ta,tb;
    if (b == 10)
    {
        a++;
        b=1;
    }
    if (a == 10)
    {
        for (i=1; i<=9; i++)
        {
            for (j=1; j<=9; j++)
            {
                printf("%d",mp[i][j]);
            }
            printf("\n");
        }
        flag=true;
        return ;
    }
    if (mp[a][b] == 0)
    {
        ta=(a-1)/3;
        tb=(b-1)/3;
        for (i=1; i<=9; i++)
        {
            t1=x[a]&e[i];
            t2=y[b]&e[i];
            t3=p[ta][tb]&e[i];
            if (t1 != 0 || t2 != 0 || t3 != 0)
                continue;

            mp[a][b]=i;
            x[a]|=e[i];
            y[b]|=e[i];
            p[ta][tb]|=e[i];

            DFS(a,b+1);
            if (flag == true)
                return ;
            x[a]-=e[i];
            y[b]-=e[i];
            p[ta][tb]-=e[i];
            mp[a][b]=0;
        }
    }
    else
    {
        DFS(a,b+1);
    }
}
int main()
{
    int prob,i,j;
    char str[120];
    for (i=1; i<=9; i++)
    {
        e[i]=1<<i;
    }
    e[0]=0;
    scanf("%d",&prob);
    getchar();
    while (prob--)
    {
        memset(x,0,sizeof(x));
        memset(y,0,sizeof(y));
        memset(p,0,sizeof(p));
        for (i=1; i<=9; i++)
        {
            gets(str);
            for (j=1; j<=9; j++)
            {
                mp[i][j]=str[j-1]-'0';
                p[(i-1)/3][(j-1)/3]+=e[mp[i][j]];
                x[i]+=e[mp[i][j]];
                y[j]+=e[mp[i][j]];
            }
        }
        flag=false;
        DFS(1,1);

    }
}


Polymarket链上预测市场自动化交易代理开发实战指南 自动化交易代理是量化交易的核心工具,它通过预设的算法规则,自动执行市场分析、决策与下单操作,旨在提升交易效率与纪律性。其技术原理通常涉及实时数据获取、策略引擎计算、交易执行与风险管理等模块的协同工作。在区块链与DeFi领域,这类代理的价值尤为凸显,能够高效处理链上合约交互,捕捉去中心化市场的套利机会。具体到应用场景,链上预测市场如Polymarket,为自动化策略提供了丰富的博弈标的。本文以Polymarket交易代理项目为例,深入剖析其基于Node.js与ethers.js的技术栈实现,详解从环境配置、策 阅读详情

相关推荐

qPCRtools | 神仙R包分分钟搞定你的qPCR实验结果!~

1写在前面 不知道大家都是怎么完成qPCR的计算的,在不会R的时候,我是用一个祖传的Excel表进行计算的。🤣 但是,一直有个缺点,如果需要计算的量比较大时,就不方便了,去搜了一下文献,发现了一个最近发表的R包,不仅可以计算反转录的RNA体积,还可以帮助选择定量方法,简直是神仙R包,本期就介绍一下它的使用吧。🥰 感谢原作者的开发,嘿嘿,文末有引用方法。👀 2用到的包 rm(list = ls())library(tidyverse)library(ggsci)library(qPCRtools)librar

m0_72224305的博客 3986

POJ2676Sudoku题解

定义三个数组判断i列是否出现j,i行是否出现j,第i个宫格是否出现j,依次枚举每一位的9种可能。根据上述三种数组来判断当前状态的合法性。

weixin_42178241的博客 218

Spring Boot应用Docker化实战:从Dockerfile编写到镜像推送完整流程

本文详细介绍了将Spring Boot应用Docker化的完整实战流程。从环境准备、项目审视,到编写高效且安全的Dockerfile,重点讲解了多阶段构建、镜像层优化、Spring Boot分层JAR等核心技巧,并涵盖了镜像构建、验证、调试以及最终推送至仓库并集成CI/CD的最佳实践,帮助开发者构建生产级Docker镜像。

butter的博客 1023

【POJ 2676】 Sudoku

【题目链接】 http://poj.org/problem?id=2676 【算法】 深度优先搜索 【代码】 #include <algorithm> #include <bitset> #include <cctype> #include &lt...

93

Ubuntu操作系统等保测评指南

Ubuntu操作系统等保测评指南

qq_40181198的博客 7026

Miniconda入门:在CentOS上的安装、基本操作、目录结构、卸载

Miniconda是一个 免费的 轻量级的 conda安装程序 它只包含conda、Python、pip、zlib等基础的文件和依赖包 使用conda install命令可从Anaconda存储库中安装额外的conda包 简介 下载 安装 基本操作 虚拟环境的操作 包的操作 目录结构 卸载

ArYe 1万+

POJ2676 Sudoku【DFS】

Sudoku Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 28548 Accepted: 13016 Special Judge Description Sudoku is a very simple task. A square table with 9 rows and 9 columns is divided t...

海岛Blog 788

生信分析服务MR孟德尔随机化单细胞测序转录组数据分析网络药理学

通过上述技术整合,可实现从基因-环境-疾病关联到药物机制解析的全链条研究,为疾病机制解析和药物研发提供新思路。结合,是当前生物信息学领域的前沿方法,尤其在疾病机制解析、靶点发现和药物研发中展现出巨大潜力。

matlabgoodboy的博客 1520

【POJ2676】Sudoku

本题传送门 本题知识点:深度优先搜索 + 回溯 问题就是要让我们解决一个数独问题。如果你懂得怎么玩数独的话,那就很自然想到用暴力搜索去做题。(比如我就不会,所以先WA了一发quq) 数独符合三个条件 同行里只有 1 ~ 9 这9个数字 同列里只有 1 ~ 9 这9个数字 在这9x9的方阵里有9个3x3的小方阵,每个小方阵里的9个数也只能是 1 ~ 9 注意,这每行每列每小方阵的9个数...

LT4585的博客 335

FPGA新手必看:Quartus生成jic文件全流程详解(附AS/JTAG模式选择指南)

本文详细解析了在Quartus中生成JIC文件以固化FPGA程序到Flash的全流程。核心在于理解JIC文件作为连接JTAG调试与AS固化的桥梁作用,并重点阐述了Convert Programming Files工具的关键配置步骤、AS与JTAG模式的选择逻辑,以及烧录过程中的常见问题排查指南,帮助开发者实现程序断电不丢失。

weixin_29271053的博客 275

获取车辆VIN等OBD信息

获取车辆如下OBD信息: VIN:Vehicle Identification Number CALID:Calibration Identifications CVN:Calibration verification number 一、SAE J1939协议 通过请求 CALIBRATION INFORMATION (DM19),获取CVN和CALID。 发送请求:18EA00F9 00 D3 00 应答:18EC0000 10 14 00 03 FF 00 D3 00 数据,BYTE1=0x10,表明

jianxuezixuan的博客 1万+

poj2676 Sudoku

Sudoku Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 17953   Accepted: 8688   Special Judge Description Sudoku is a very simple task. A square table with

keshuqi的博客 427

YOLOv11改进-卷积-引入小波卷积WTConv 解决多尺度小目标问题

1.首先,WTConv利用二维Haar小波变换对输入图像进行多级分解。低频分量 (LL):捕捉图像的低频信息,如整体形状或轮廓。水平高频分量 (LH):捕捉图像中的水平边缘信息。垂直高频分量 (HL):捕捉图像中的垂直边缘信息。对角线高频分量 (HH):捕捉图像的对角线细节。在每一级的小波变换中,图像被下采样(空间分辨率减半),但频率信息得到了更细的分解。递归地执行小波变换(称为多级分解)可以得到不同尺度下的频率分量。

qq_64693987的博客 1万+

Sudoku POJ-2676

Sudoku is a very simple task. A square table with 9 rows and 9 columns is divided to 9 smaller squares 3x3 as shown on the Figure. In some of the cells are written decimal digits from 1 to 9. The oth...

。。。的博客 305

visio安装包

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

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

POJ2676 Sudoku

POJ2676 Sudoku 需要算出第i行第j个所对应得九宫格的编号 据说可以直接算:3*((i-1)/3)+(j-1)/3+1,蒟蒻不会,只好预处理 1 #include <cstdio> 2 #include <cstring> 3 #include <queue> 4 #include <algorit...

weixin_34150830的博客 89

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

poj2676 Sudoku 数独

Language: Default Sudoku Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 17986   Accepted: 8707   Special Judge Description Sudoku is a very simple tas

相思作坊半世离殇的博客 2427

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

poj2676Sudoku

虽然做了两次了,但还是没有一遍完整的把代码敲下来,可能深搜用的还不娴熟,好多细节没有考虑到,遇到这种;类似的问题一筹莫展,还是自己比较渣,现在是一个瓶颈把,提高比较慢(强行安慰自己......)

W_904038290的博客 360

POJ 2676, Sudoku

Time Limit: 2000MSMemory Limit: 65536KTotal Submissions: 5414Accepted: 2567Special Judge DescriptionSudoku is a very simple task. A square table with 9 rows and 9 columns is divided to 9 smalle...

weixin_34129696的博客 247

【POJ 2676】Sudoku数独(DFS)

思路:DFS遍历解数独,很有意思的题目,由于行、列、每一个3*3小方格都不能重复,故需要三个数组row,col,dig来标记某1~9数字是否出现。DFS遍历,具体思路见注释。

Chen_yuazzy的博客 1557

Sudoku POJ2676

题目: Sudoku is a very simple task. A square table with 9 rows and 9 columns is divided to 9 smaller squares 3x3 as shown on the Figure. In some of the cells are written decimal digits from 1 to 9. The...

zhangjinlei321的博客 370

Poj 2676 Sudoku

Sudoku Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 16554   Accepted: 8075   Special Judge Description Sudoku is a very simple task. A square table with

曾经沧海难为水,除却巫山不是云 357

【POJ 2676】Sudoku

【POJ 7676】Sudoku又是一个水数据的搜索……不过还是剪枝做了做 剪枝大法好啊!好多几百ms的 剪出来个0ms 顿感欣慰不过看discuss 3074 Sudoku数据更强大 傻傻的去做了 最后T的实在不行的时候看到discuss说用dance links。。。呵呵了= = 只在当初听说xiao爷学了一阵子。。我还是慢慢搞吧= =有兴趣的可以去看看回归此题。。我是存了三个数组分别标记行中哪

ACMer' 1042

POJ2676 Sudoku DFS

题目链接 http://poj.org/problem?id=2676 分析 DFS每个位置,用三个二进制数来表示某行,某行,某九宫格可填数的候选范围,依次尝试填入。 AC代码 #include <cstdio> #include <cstring> const int maxn = 15; int r[maxn], c[maxn], p[maxn], flag; ch...

Kevin的博客 210

POJ 2676 Sudoku(DFS回溯)

POJ2676 Sudoku(DFS回溯) http://poj.org/problem?id=2676 题意:给你一个9*9的数独棋盘,但是该数独未填完,你输出完整的数独解. 分析:其实本题最快的方法应该是用Donald Knuth提出的舞蹈链.具体可见刘汝佳:训练指南第六章. DFS回溯构造,不过我们按从上到下,从左到右填(1-9)个数字,但是我们怎么知道我们当前填的数是否合法呢?

code 1813
上一篇: POJ 1129 Channel Allocation
下一篇: POJ 1837 Balance
plusplus7
博客等级 码龄15年 59粉丝 173原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值