poj-1321(棋盘问题)

ACM — POJ1321-棋盘问题 题目链接:https://vjudge.net/problem/POJ-1321 思路一:首先我们可以明确这是一个深度搜索的题目,与八皇后问题相似。我们建立一个函数DFS用来累计可行的方案数,我们走过一列我们就把它标记下来下次的时候就不可以再摆放在这一列(因为题目要求不可以将棋子摆放在同一行和同一列)然后就从下一行开始寻找可行的地方,直到我们摆放的棋子数与我们被要求摆放的棋子数相同时,我们... 阅读详情

今天学习dfs,然后做到这道题,虽然不难,但一开始wa了一次。

题目大意:题目本身讲得很清楚了,这里不再赘述。附链接:http://poj.org/problem?id=1321。

大体思路:这道题从题意可以看出是属于深搜(dfs)的。开辟一个棋盘box[10][10],以及一个记录各列棋子情况的一维数组col[10],每一行棋子有两种情况,放与不放(关键)。一开始我每一行都循环,接着每一行都放,然后深搜完return再清空记录,接着放下一行,返回WA!!!因为我重复计算了某些情况,试了一组样例才发现。以下是正确代码:

#include<iostream>
#include<cstring>
using namespace std;

int col[10];
char box[10][10];
int num,n,k;
void solve(int cur,int cnt){
    if(cnt==k){
        num++;
        return;
    }
    if(cur==n)
        return;
    solve(cur+1,cnt); //放棋子
    //不放棋子
    for(int i=0;i<n;i++){
        if(col[i]==0&&box[cur][i]=='#'){
            col[i]=1;
            solve(cur+1,cnt+1);
            col[i]=0;
        }
    }
}
int main(){
    while(cin>>n>>k){
        if(n==-1)
            break;
        memset(col,0,sizeof(col));
        for(int i=0;i<n;i++)
            for(int j=0;j<n;j++)
                cin>>box[i][j];
        num=0;
        solve(0,0);
        cout<<num<<endl;
    }
    return 0;
}

poj 1321 棋盘问题 棋盘问题 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 29049   Accepted: 14396 Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求 阅读详情

相关推荐

Word标题样式基准重置:彻底解决重新打开后自动缩进问题

本文深入剖析了Word文档中标题样式在重新打开后自动缩进问题的根源,并提供了两种根治方案。通过调整标题样式基准或将其设为“无样式”,并配合检查修正多级列表设置,可彻底解决这一常见格式顽疾,确保文档格式的稳定性与专业性。

weixin_29266647的博客 528

POJ-1321—棋盘问题

POJ-1321—棋盘问题(DFS模板题)

来而不往非礼也 1765

【物联网】探索NE555:一款经典的集成电路(超详细)

NE555是一种集成电路,其内部结构包括比较器、RS触发器、电压比较器和输出级三个主要功能模块,外部引脚则提供了与其他电路元件进行连接的接口。NE555的设计目的是为了提供一种简单方便的定时器解决方案,它广泛应用于模拟和数字电路中。NE555作为一款经典的集成电路,具备设计简单、易于使用和稳定可靠的特点,在电子领域发展了广泛的应用。从单稳态模式到多稳态模式,再到振荡器模式,NE555可以满足不同的需求,并且可以与其他电路元件灵活组合,扩展其功能。然而,需要注意的是NE555也有一些限制。

Goforyouqp的博客 6万+

POJ 1321 棋

思路:深搜,每次从上一个放棋子地方的下一行开始寻找可以放棋子的地方,发现该点时,记录行数,并更新棋盘,将与此点同行同列的都更新为'.',如果找不到,则返回。当所有棋子放置完毕,计数+1,就这样进行搜索。

sunny crazy 674

Yolov26 在 Rk3588 上的 Rknn Onnx 部署实践(模型转换)

本文详细介绍了将YOLOv26 ONNX模型转换为RKNN模型的过程,适用于RK3588平台。主要内容包括:1)量化数据集的创建,通过随机抽取最多400张JPG图片生成校准数据集;2)ONNX转RKNN的完整脚本,支持多种量化方式和平台适配;3)模型转换的参考调用方式;4)模型结构对比展示。文章还提供了注意事项,强调量化数据集图片尺寸、mean/std值需与实际推理一致,并给出精度优化建议。该转换流程为YOLOv26模型在RK3588上的高效部署提供了完整解决方案。

qq_64366203的博客 1127

STGCN实战:从零构建PyTorch时空图卷积网络预测城市交通流

本文详细介绍了如何使用PyTorch从零构建时空图卷积网络(STGCN)进行城市交通流预测。通过将交通网络建模为图结构,并融合时间卷积与空间图卷积,STGCN能有效捕捉交通流的时空依赖性。文章提供了从数据预处理、核心模块(TimeBlock与STGCNBlock)搭建、模型训练到实战技巧的完整指南,帮助开发者快速掌握这一前沿的交通速度预测技术。

wasm7browser的博客 249

POJ_1321(DFS算法)

POJ_1321,dfs不规则棋盘放棋子问题 #include <iostream> #include <cstring> using namespace std; //chess该位置可否放棋子(0不可1可),不可可能有本身不能放或者该位置已经放了棋子 //haschess第0行表示该行是否有棋子,第1行表示该列是否有棋子 bool chess[8][8],hasch...

宫·商的博客 263

Linux ARM平台开发系列讲解(LED) 2.1.1 如何点亮一个LED之添加设备树信息

1. 设备树添加设备信息 我拿到的开发板上有两颗LED供用户编程使用,分别是GPIO5_IO8和GPIO5_IO9,设备信息如下,不同板子的设备定义不同,根据自己的实际情况进行添加。 2. 编译设备树 根据自己拿到的SDK,执行编译命令,我这里拿到的SDK编译脚本为: ./build.sh kernel 3. 使用uuu工具烧录新编译好的内核 因为imx8 SDK设备树和内核是统一编译成一个镜像,所以只需要烧录内核,设备树文件也会烧录。 sudo uuu -b emmc imx-kernel.bin

DSMGUOGUO的博客 920

POJ - 1321棋盘问题(萌新)

这两种情况有什么不同呢,棋子放完了 ,那么方案 就成立了,,可以对方案数进行++操作 ,并对搜索终止,直接return;第二种情况呢,行走完了,这时就要分情况了,棋子是否放完了,所以呢可以把对剩余 棋子的 数量判断放在行数前的判断.所以dfs的第二个参数就确定了,就是剩余 棋子的数量。对于 当前列有没有放过其他棋子,可以用一个boolean数组记录放过棋子的位置 ,这样去判断。首先从题目中我们可以得知的一条思路是,每一行每一列只能放一个,那我们就一行一行的放,这一行也可以选择不放,这就是对 思路 的模拟。

2402_83690346的博客 440

YOLOv11的物理信息神经网络(PINN):引入物理规律约束目标运动预测

本文介绍了YOLOv11目标检测与PINN物理信息神经网络的融合技术。YOLOv11采用增强特征提取和参数优化架构,在保持实时性的同时提升检测精度。PINN通过将物理方程嵌入损失函数,实现数据高效学习。两者的结合可显著提升运动预测准确性和遮挡处理鲁棒性。文章详细阐述了环境配置、YOLOv11模型验证方法,并提供了基础PINN框架代码实现,展示了物理约束如何通过自动微分整合到神经网络中。该融合技术适用于自动驾驶、无人机导航等需要物理规律建模的视觉感知场景。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 423

基于Python实现学习进度跟踪系统

{{ task }}: {{ "%.1f"|format(hours) }}小时

寒寒豆豆软件公司的博客 196

棋盘问题 POJ - 1321

https://vjudge.net/problem/POJ-1321 棋盘问题 POJ - 1321 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 Input 输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n 当为-1 -

Are_you_ready的博客 363

Allegro如何画Photoplot_Outline操作指导

在用Allegro进行PCB设计的时候,最后进行光绘输出前,Photoplot_Outline是必备一个图形,所有在Photoplot_Outline中的图形将被输出,Photoplot_Outline以外的图形都将不被输出。如何绘制Photoplot_Outline,具体操作如下。如何画Photoplot_Outline操作指导。

weixin_54787054的博客 2636

POJ-1321 棋盘问题

POJ-1321 棋盘问题 题目链接:POJ-1321 题目大意:给定一个棋盘 棋盘#的位置可以放置棋子 要求你放入k个棋子 并且放过棋子的同一行同一列不能再放棋子 问有多少种放法 解题思路:将可以设置棋子的地方放入一个容器中 之后递归往下看能不能放即可,当然还要试试当前要放的位置横行和列数有没有放过 当放k个棋子的时候总数加一 最后输出即可 这题时间要求挺苛刻的吧 最大行列数的时候我的递归基本...

鱼头的水题之路 230

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

POJ 1321 棋盘问题

POJ 1321 棋盘问题 POJ入口:http://poj.org/problem?id=1321 解题思路 首先这是一道深度优先搜索题目 vis[j]数组用于标记j列是否有棋子 mp[][]用于存放棋盘状况 重要的便是DFS的书写 核心思想是采用行搜索 列判断 首先确定递归终止条件为放置棋子数达到所给棋子数 终止结果体现为一种方案的产生 对于DFS的第一个参数x 它代表从第x行开始搜索 第二个...

恒治学 146

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

POJ——1321棋盘问题

文章目录POJ1321棋盘问题题目思想代码 POJ1321棋盘问题 题目 http://poj.org/problem?id=1321 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 99960 Accepted: 45560 Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行

李霁明的博客 300

POJ 1321 棋盘问题(C)回溯

POJ,1321,棋盘问题,C,回溯,棋子,递归,方案数,形状,棋子数,string.h,memset,TRUE,FALSE,二维数组,getchar,题目链接,题解,代码,截图,提交结果。

wowpH 344

poj1321棋盘问题

题目大意:输入n,k,n表示棋盘大小为n*n,接下来n行描述棋盘,#表示棋盘区域,'.'表示空白区域,棋盘区域才能放棋子,k表示要放置的棋子个数。 poj1321棋盘问题 #include #include #include using namespace std; char a[9][9]; int aa[10]; int k,countt,n; void dfs(int row,int

qq_30843195的博客 343

poj 1321 棋盘问题 回溯 Java

poj 1321 棋盘问题 import java.util.Arrays; import java.util.Scanner; /** * @author wangshaoyu */ public class POJ1321棋盘问题 { static int n; static int k; static int ans; static boolean[] rows; // 用于标记这一行是否已经放过棋子了 static boolean[] cols; //

weixin_46621409的博客 393

[POJ 1321] 棋盘问题

[POJ 1321] 棋盘问题 题目链接:http://poj.org/problem?id=1321 注意代码中的注释。 1 #include&lt;cstdio&gt; 2 #include&lt;cstring&gt; 3 using namespace std; 4 5 int n,k,total,ans; ...

Youpeng 114

[POJ1321] 棋盘问题(DFS)

传送门:POJ 1321 棋盘问题 回溯暴力搜索也不会超时。下次补一下状态压缩dp的做法... #include <iostream> #include <string.h> using namespace std; int n, k, ans = 0; int vis[10][10]; int read() { cin >> n >&g...

坤斤拷的博客 210

Poj 1321棋盘问题 [简单搜索, 回溯]

POJ 1321 棋盘问题 题目链接:https://vjudge.net/problem/POJ-1321 题目描述: 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 Input: 输入含有多组测试数据。 每组数据的第一行是两个正整数,n...

weixin_31808637的博客 148

棋盘问题-POJ 1321

棋盘问题-POJ 1321 Crawling in process... Crawling failed Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Submit Status Practice POJ 1321 Description 在一个...

87

POJ1321 棋盘问题

POJ1321 棋盘问题 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 94335 Accepted: 43079 Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可...

weixin_44941429的博客 143
上一篇: 大整数类的四则运算和逻辑运算
下一篇: Soldier and Cards(CF #304 Div.2)
blackturtle
博客等级 码龄10年 15粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值