poj3740
#include<stdio.h>
#include<iostream>
int map[16][300];
int vistx[16];
int visty[300];
int zhenflag=0;
int X;
int Y;
void xuanlie(int lie)
{
if(zhenflag==1)
return ;
if(lie==Y)
{
zhenflag=1;
printf("Yes, I found it\n");
return;
}
if(visty[lie]==1)
{
xuanlie(lie+1);
}
else
{
for(int i=0;i<X;i++)
{
int flag=0;
if(map[i][lie]==1&&vistx[i]==0&&visty[lie]==0)
{
for(int j=0;j<Y;j++)
{
if(visty[j]==1&&map[i][j]==1)
{
flag=1;
break;
}
}
if(flag==1)
continue;
vistx[i]=1;
for(int j=0;j<Y;j++)
{
if(map[i][j]==1)
{
visty[j]=1;
}
}
xuanlie(lie+1);
for(int j=0;j<Y;j++)
{
if(map[i][j]==1)
{
visty[j]=0;
}
}
vistx[i]=0;
}
}
}
}
int main()
{
freopen("in.txt","r",stdin);
while(scanf("%d%d",&X,&Y)!=EOF)
{
for(int i=0;i<X;i++)
{
for(int j=0;j<Y;j++)
{
scanf("%d",&map[i][j]);
}
}
zhenflag=0;
for(int i=0;i<X;i++)
vistx[i]=0;
for(int i=0;i<Y;i++)
visty[i]=0;
xuanlie(0);
if(zhenflag==0)
printf("It is impossible\n");
}
return 0;
}
poj3740的更多相关文章
- [poj3740]Easy Finding_状态压缩_dfs
Easy Finding poj-3470 题目大意:给你一个01矩阵,问能否选出一些行,使得这些行所新组成的01矩阵每列中有且只有1个1. 注释:1<=行数<=16,1<=列数&l ...
- POJ3740 Easy Finding 舞蹈链 DLX
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目 精确覆盖问题模板题 算法 DLX算法 学习DLX算法--传送门 代码 #include <cstring> ...
- 【POJ3740】Easy Finding DLX(Dancing Links)精确覆盖问题
题意:多组数据,每组数据给你几行数,要求选出当中几行.使得每一列都有且仅有一个1.询问是可不可行,或者说能不能找出来. 题解:1.暴搜.2.DLX(Dancing links). 本文写的是DLX. ...
- POJ 1321
http://poj.org/problem?id=1321 一道深搜的题目,和那个POJ3740有点相类似. 也是到了现在我才知道原来深搜也有几种套路的,以前我的都是用队列来做,那个是不需要记住什么 ...
- poj练习题的方法
poj1010--邮票问题 DFSpoj1011--Sticks dfs + 剪枝poj1020--拼蛋糕poj1054--The Troublesome Frogpoj1062--昂贵的聘礼poj1 ...
- dancing link 学习资源导航+心得
dancing link简直是求解数独的神器,NOIP2009最后一题靶形数独,DFS 各种改变搜索顺序 都没法过,最后还是用了卡时过得.用dancing link写,秒杀所有数据,总时间才400ms ...
- 【转】Dancing Links题集
转自:http://blog.csdn.net/shahdza/article/details/7986037 POJ3740 Easy Finding [精确覆盖基础题]HUST1017 Exact ...
- 【转载】图论 500题——主要为hdu/poj/zoj
转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...
- 舞蹈链 DLX
欢迎访问——该文出处-博客园-zhouzhendong 去博客园看该文章--传送门 舞蹈链是一个非常玄学的东西…… 问题模型 精确覆盖问题:在一个01矩阵中,是否可以选出一些行的集合,使得在这些行的集 ...
随机推荐
- tornado 重定向404(方法不对)
application = tornado.web.Application(url_wrapper([ (r"", include('app.views.web_services. ...
- js框架设计1.4类型判断
这篇司徒大神介绍了很多js的 不靠谱类型判断.篇幅也是第一篇中最常的 ,经阅读后,以后一定要用框架的自带的类型判断,万万不可随便乱用js原生判断.
- .NET LINQ查询操作中的类型关系
LINQ 查询操作中的类型关系 若要有效编写查询,您应该了解完整的查询操作中的变量类型是如何全部彼此关联的. 如果您了解这些关系,就能够更容易地理解文档中的 LINQ 示例和代码示例. 另外 ...
- cisco-log
每个日志消息被关联一个严重级别,用来分类消息的严重等级:数字越低,消息越严重.严重级别的范围从0(最高)到7(最低). 日志消息的严重级别,使用logging命令可以用数字或者名称来指定严重性. ...
- SQL入门语句之运算符
运算符是一个保留字或字符,主要用于连接WHERE后面的条件. 一.算数运算符 运算符 描述 + 加法 - 把运算符两边的值相加 - 减法 - 左操作数减去右操作数 * 乘法 - 把运算符两边的值相乘 ...
- java类读取properties文件
package com.bshinfo.el.userInfo.util; import java.io.BufferedReader;import java.io.File;import java. ...
- Unix系统引导过程(简单步骤)
1.从MBR中读取引导加载程序(boot loader) 2.初始化内核 3.硬件检测 4.创建内核进程 5.系统管理员干预(仅仅在进入单用户模式或者恢复模式的时候) 6.执行系统启动脚本
- Jquery Mobile开发以及Js对象动态绑定
动态创建对象并绑定属性: var instantiate = function (Type, args) { var Constructor = function () { }; Constructo ...
- Andriod学习笔记1:代码优化总结1
多行变一行 比如说开发一个简单的计算器应用程序,需要定义0-9的数字按钮,第一次就习惯性地写出了如下代码: Button btn0; Button btn1; Button btn2; Button ...
- SVG实现导航动画
效果图动画后 html <!DOCTYPE html> <html > <head> <meta charset="UTF-8"> ...