POJ1321(KB1-A 简单搜索)
棋盘问题
Time Limit: 1000MS Memory Limit: 10000K
Total Submissions: 40872 Accepted: 19936
Description
Input
每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n
当为-1 -1时表示输入结束。
随后的n行描述了棋盘的形状:每行有n个字符,其中 # 表示棋盘区域, . 表示空白区域(数据保证不出现多余的空白行或者空白列)。
Output
Sample Input
2 1
#.
.#
4 4
...#
..#.
.#..
#...
-1 -1
Sample Output
2
1
Source
//2017-02-19
#include <iostream>
#include <cstdio>
#include <cstring> using namespace std; int n, k, cnt;
char M[][];
bool col[]; void dfs(int row, int step)//row表示当前行数,step表示已经放的棋子数
{
if(step == k){
cnt++;
return;
}
if(row >= n)return;
dfs(row+, step);//该行不放棋子
for(int j = ; j < n; j++)
if(col[j] == false && M[row][j]=='#'){
col[j] = true;
dfs(row+, step+);//该行放棋子
col[j] = false;
}
} int main()
{
while(cin>>n>>k)
{
if(n==- && k==-)break;
cnt = ;
memset(col, , sizeof(col));
for(int i = ; i < n; i++)
for(int j = ; j < n; j++)
cin>>M[i][j]; dfs(, );
cout<<cnt<<endl;
} return ;
}
import java.io.BufferedInputStream;
import java.util.Arrays;
import java.util.Scanner;
// 2018-03-08
public class Main {
static final int N = 10;
static int ans, n, k;
static char[][] M = new char[N][N];
static boolean[] col = new boolean[N]; public static void dfs(int row, int cnt) {
if(cnt == k) {
ans++;
return;
}
if(row == n)return;
for(int i = 0; i < n; i++) {
if(M[row][i] == '#' && !col[i]) {
col[i] = true;
dfs(row+1, cnt+1);
col[i] = false;
}
}
dfs(row+1, cnt);
} public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner cin = new Scanner(new BufferedInputStream(System.in)); while(cin.hasNext()) {
n = cin.nextInt();
k = cin.nextInt();
cin.nextLine();
if(n == -1 && k == -1)break;
for(int i = 0; i < n; i++) {
M[i] = cin.nextLine().toCharArray();
}
Arrays.fill(col, false);
ans = 0;
dfs(0, 0);
System.out.println(ans);
}
} }
POJ1321(KB1-A 简单搜索)的更多相关文章
- ElasticSearch 5学习(4)——简单搜索笔记
空搜索: GET /_search hits: total 总数 hits 前10条数据 hits 数组中的每个结果都包含_index._type和文档的_id字段,被加入到_source字段中这意味 ...
- nyoj 284 坦克大战 简单搜索
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=284 题意:在一个给定图中,铁墙,河流不可走,砖墙走的话,多花费时间1,问从起点到终点至少 ...
- 分布式搜索ElasticSearch构建集群与简单搜索实例应用
分布式搜索ElasticSearch构建集群与简单搜索实例应用 关于ElasticSearch不介绍了,直接说应用. 分布式ElasticSearch集群构建的方法. 1.通过在程序中创建一个嵌入es ...
- solr简单搜索案例
solr简单搜索案例 使用Solr实现电商网站中商品信息搜索功能,可以根据关键字搜索商品信息,根据商品分类.价格过滤搜索结果,也可以根据价格进行排序,实现分页. 架构分为: 1. solr服务器 2. ...
- 和我一起打造个简单搜索之SpringDataElasticSearch入门
网上大多通过 java 操作 es 使用的都是 TransportClient,而介绍使用 SpringDataElasticSearch 的文章相对比较少,笔者也是摸索了许久,接下来本文介绍 Spr ...
- 和我一起打造个简单搜索之SpringDataElasticSearch关键词高亮
前面几篇文章详细讲解了 ElasticSearch 的搭建以及使用 SpringDataElasticSearch 来完成搜索查询,但是搜索一般都会有搜索关键字高亮的功能,今天我们把它给加上. 系列文 ...
- 和我一起打造个简单搜索之Logstash实时同步建立索引
用过 Solr 的朋友都知道,Solr 可以直接在配置文件中配置数据库连接从而完成索引的同步创建,但是 ElasticSearch 本身并不具备这样的功能,那如何建立索引呢?方法其实很多,可以使用 J ...
- 和我一起打造个简单搜索之IK分词以及拼音分词
elasticsearch 官方默认的分词插件,对中文分词效果不理想,它是把中文词语分成了一个一个的汉字.所以我们引入 es 插件 es-ik.同时为了提升用户体验,引入 es-pinyin 插件.本 ...
- 和我一起打造个简单搜索之ElasticSearch集群搭建
我们所常见的电商搜索如京东,搜索页面都会提供各种各样的筛选条件,比如品牌.尺寸.适用季节.价格区间等,同时提供排序,比如价格排序,信誉排序,销量排序等,方便了用户去找到自己心里理想的商品. 站内搜索对 ...
- 和我一起打造个简单搜索之ElasticSearch入门
本文简单介绍了使用 Rest 接口,对 es 进行操作,更深入的学习,可以参考文末部分. 环境 本文以及后续 es 系列文章都基于 5.5.3 这个版本的 elasticsearch ,这个版本比较稳 ...
随机推荐
- BZOJ 1305--[CQOI2009]dance跳舞(最大流)
1305: [CQOI2009]dance跳舞 Time Limit: 5 Sec Memory Limit: 162 MBSubmit: 4150 Solved: 1792[Submit][St ...
- jzoj5848
小 S 热爱大自然, 一天他种了一棵奇怪的线段树. 奇怪的线段树是一种与普通线段树类似的结构, 唯一不同的是, 它不一定以每一个区间的中点作为分治中心. 麻烦的是, 小 S 的线段树被风吹散了, 散成 ...
- SQL执行计划分析2
执行计划重点关注 type.key.key_len.rows.extra type:type如果为ALL,表示全盘扫描,也是效率最低的 key:表示使用了哪个索引,如果没有使用为null key_le ...
- Queue-621. Task Scheduler
Given a char array representing tasks CPU need to do. It contains capital letters A to Z where diffe ...
- 【zookeeper】Apache curator的使用及zk分布式锁实现
上篇,本篇主要讲Apache开源的curator的使用,有了curator,利用Java对zookeeper的操作变得极度便捷. 其实在学之前我也有个疑虑,我为啥要学curator,撇开涨薪这些外在的 ...
- 转载,自己留着看eclipse 快捷键
Eclipse中10个最有用的快捷键组合 一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合.通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升. ...
- linux centos7 防火墙及端口开放相关命令
一.防火墙相关命令 1.查看防火墙状态 : systemctl status firewalld.service 注:active是绿的running表示防火墙开启 2.关闭防火墙 :systemct ...
- (转)python字符串函数
原文:https://www.cnblogs.com/emanlee/p/3616755.html https://blog.csdn.net/luoyhang003/article/details/ ...
- linux 可执行文件与写操作的同步问题
当一个可执行文件已经为write而open时,此时的可执行文件是不允许被执行的.反过来,一个文件正在执行时,它也是不允许同时被write模式而open的.这个约束很好理解,因为文件执行和文件被写应该需 ...
- python基础笔记之注释三种方法
---恢复内容开始--- 1,,单行注释 用# 2,多行注释 用 “”” dddd""" 3,较长行虽然分行写但是只是注释,最终显示为一行:用 \ ---恢复内容结束- ...