POJ 1321 棋盘问题

ACM — POJ1321-棋盘问题 题目链接:https://vjudge.net/problem/POJ-1321 思路一:首先我们可以明确这是一个深度搜索的题目,与八皇后问题相似。我们建立一个函数DFS用来累计可行的方案数,我们走过一列我们就把它标记下来下次的时候就不可以再摆放在这一列(因为题目要求不可以将棋子摆放在同一行和同一列)然后就从下一行开始寻找可行的地方,直到我们摆放的棋子数与我们被要求摆放的棋子数相同时,我们... 阅读详情
在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 Input
输入含有多组测试数据。
每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n
当为-1 -1时表示输入结束。
随后的n行描述了棋盘的形状:每行有n个字符,其中 # 表示棋盘区域, . 表示空白区域(数据保证不出现多余的空白行或者空白列)。
Output
对于每一组数据,给出一行输出,输出摆放的方案数目C (数据保证C<2^31)。
Sample Input
2 1
#.
.#
4 4
...#
..#.
.#..
#...
-1 -1
Sample Output
2
1

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,k;
char map[12][12];
int vis[12];
int ans;
void DFS(int x,int y,int m)
{
    int i,j;
    if(m==k+1)
    {
        ans++;
        return ;
    }
    for(i=x;i<=n-1;i++)
    {
        for(j=0;j<=n-1;j++)
        {
            if(map[i][j]=='#'&&vis[j]==0)
            {
                vis[j]=1;
                DFS(i+1,0,m+1);
                vis[j]=0;
            }
        }
    }
}
int main()
{
    while(~scanf("%d%d",&n,&k))
    {
        if(n==-1&&k==-1) break;
        int i,j;
        for(i=0;i<=n-1;i++)
        {
            scanf("%s",map[i]);
        }
        ans=0;
        DFS(0,0,1);
        printf("%d\n",ans);
    }
    return 0;
}


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

相关推荐

ABAQUS中CDP模型在钢筋混凝土节点低周反复荷载模拟的关键技术解析

本文深入解析了ABAQUS中CDP模型在钢筋混凝土节点低周反复荷载模拟中的关键技术。通过详细介绍CDP模型的核心价值、建模关键技术、滞回曲线优化方法及典型问题排查指南,帮助工程师精准模拟混凝土的拉伸开裂和压缩压碎行为,提升抗震分析效率。文章还提供了实用的工程应用技巧,如快速建模模板和后处理自动化脚本。

weixin_30555125的博客 525

DFS系列(二) 棋盘问题

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

这里是阿安的博客 1726

安卓手机游戏《英雄迷宫冒险》存档修改

警告 修改前务必备份存档文件夹。该游戏有自动删除存档的功能,有问题的存档会自动删除。 修改对应的游戏版本为1.5。 存档保存位置 内部存储\Android\data\com.xmmf.yxmgmx.taptap\files 该文件夹中文件如下: data.wsf:数据文件。 wsfSave0:第一个存档。 wsfSave1:第二个存档。 修改金钱的例子 先进游戏确认当前金钱数量。当前金钱是2498,然后退出游戏。 根据金钱数量计算出存档中的内容。2498的十六进制是9C2,存档中的内容在存档中搜索该数

番茄鸡蛋的专栏 9365

POJ-1321—棋盘问题

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

来而不往非礼也 1765

Multisim14.3中FPGA接口电路设计:原理图项目应用

深入讲解在multisim14.3环境下构建FPGA接口电路的方法,结合原理图设计与项目实践,展现multisim14.3强大的电路仿真能力,提升数字系统开发效率。

weixin_42578963的博客 1158

MDB协议中设备级别和选项(Levels and Options)

MDB协议的LEVEL级别介绍

hbstart的博客 939

棋盘问题(回溯/DFS) POJ1321

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

weixin_30810583的博客 124

【2025CVPR】基于脉冲神经网络的能效目标检测模型:Multi-scale Spiking Detector(MSD)深度解析

本文提出了一种创新的多尺度脉冲神经网络目标检测器(MSD),通过生物启发的ONNB模块和MSDF框架实现了高效准确的目标检测。该模型采用端到端直接训练策略,在COCO数据集上达到62.0%mAP的精度,同时仅需7.8M参数和6.43mJ能耗,较传统方法提升2.8%精度并降低82.9%能耗。实验验证了其在小目标检测和事件数据处理的优越性,为边缘计算应用提供了新范式。

hasakie的博客 1109

棋盘问题

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

benniaoyizhi的博客 597

YOLOv9改进策略【损失函数篇】| Slide Loss,解决简单样本和困难样本之间的不平衡问题

本文记录的是改进YOLOv9的损失函数,将其替换成Slide Loss,并详细说明了优化原因,注意事项等。Slide Loss函数可以有效地解决样本不平衡问题,为困难样本赋予更高的权重,使模型在训练过程中更加关注困难样本。若是在自己的数据集中发现容易样本的数量非常大,而困难样本相对稀疏,可尝试使用Slide Loss来提高模型在处理复杂样本时的性能。

Limiiiing的博客 2606

使用Qt编译Qt WebEngine

这就是使用Qt编译Qt WebEngine模块的基本步骤。通过按照上述步骤,您应该能够成功编译和使用Qt WebEngine来嵌入Web内容到您的Qt应用程序中。Qt WebEngine是Qt框架的一个模块,它提供了一个现代的Web浏览器引擎,可以在Qt应用程序中嵌入Web内容。首先,需要获取Qt的源代码。如果尚未安装,可以从Qt官方网站下载并安装Qt。完成Qt的安装后,您可以构建并运行Qt WebEngine示例来验证编译是否成功。这将把编译好的Qt库文件和头文件安装到之前指定的安装目录中。

DevForge的博客 3017

简单搜索——棋盘问题

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

不正先生的博客 1082

嵌入式工程师必学(118):MCU的硬件定时器和中断

大多数微处理器都有一个或多个可编程硬件定时器,这些定时器包括对中断的支持。可以有不同类型的计时器,用于不同的应用程序。例如,LPC1768 具有四个 32 位通用定时器、一个看门狗定时器、一个重复中断定时器、一个系统滴答定时器、一个正交编码器接口、6 个 PWM 输出和一个支持中断的实时时钟。硬件定时器用于计时和计数作,允许处理器在 timer 进程运行时继续执行其他进程。硬件定时器是一种使用 clock 信号来增加 register 的电路。

码农17年的博客 211

棋盘问题 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

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

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

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

POJ-1321 棋盘问题

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

鱼头的水题之路 230

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

POJ 1321 棋盘问题(C)回溯

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

wowpH 344

POJ——1321棋盘问题

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

李霁明的博客 300

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

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

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

weixin_31808637的博客 148

[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

POJ1321 棋盘问题

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

weixin_44941429的博客 143
上一篇: FZU 2140 Forever 0.5
下一篇: POJ 3984 迷宫问题
哈哈哈哈666
博客等级 码龄10年 0粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值