博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 1321
阅读量:4626 次
发布时间:2019-06-09

本文共 850 字,大约阅读时间需要 2 分钟。

链接

[]

分析

dfs加上一个标记数组

经典dfs

代码

#include
#include
#include
using namespace std;#define ll long longll sum,cnt;char m[10][10];int a[10];//用于标记某一列是否被占用过 int n,k;void dfs(int x){//到达第几行了 if(sum==k){ cnt++; return; } if(x>n) return; for(int i=1;i<=n;i++){ if(!a[i]&&m[x][i]=='#'){ a[i]=1; sum++; dfs(x+1); a[i]=0; sum--; } } dfs(x+1);//第x行不要跳到下一行开始找 }int main(){ //freopen("in.txt","r",stdin); while(cin>>n>>k){ sum=0; if(n==-1&&k==-1) break; memset(a,0,sizeof(a)); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) cin>>m[i][j]; sum=0; cnt=0; dfs(1); cout<
<

转载于:https://www.cnblogs.com/mch5201314/p/10536418.html

你可能感兴趣的文章
实现鼠标移到某个对象,在旁边显示层。
查看>>
函数 加分
查看>>
Jenkins+GitLab
查看>>
C++学习笔记2——引用
查看>>
url
查看>>
[小北De编程手记] : Lesson 01 玩转 xUnit.Net 之 概述
查看>>
LeetCode "Median of Two Sorted Arrays"
查看>>
PAT 1004. Counting Leaves (30)
查看>>
首先你得承认世界上有全面超过你的人
查看>>
20165204 Java第二周学习
查看>>
php数组转xml
查看>>
Binary Tree Serialisation Lintcode
查看>>
C# LINQ学习笔记
查看>>
easyui select 下拉框的取值和赋值
查看>>
java.lang.IllegalArgumentException: Request header is too large
查看>>
如何解决安卓SDK无法下载Package的问题
查看>>
我的知识组织管理
查看>>
gradle spring boot构建项目
查看>>
MTK 修改默认屏幕亮度
查看>>
进程间的几种通信方式
查看>>