poj3740

poj3740

dfs

ContractedBlock.gif
ExpandedBlockStart.gif
View Code

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

#define maxn 20
#define maxm 305

int n, m;
int map[maxn][maxm];
int num[maxn];
bool g[maxn][maxn];
int rownum[maxn];
bool found;

void input()
{
memset(num,
0, sizeof(num));
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
{
int a;
scanf(
"%d", &a);
if (a == 0)
map[i][j]
= 0;
else
{
map[i][j]
= 1;
num[i]
++;
}
}
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
{
bool ok = true;
for (int k = 0; k < m; k++)
if (map[i][k] && map[j][k])
{
ok
= false;
break;
}
if (ok)
g[i][j]
= true;
else
g[i][j]
= false;
}
}

void dfs(int tot, int now, int ans)
{
if (found)
return;
if (now == n)
{
if (ans == m)
found
= true;
return;
}
dfs(tot, now
+ 1, ans);
bool ok = true;
for (int i = 0; i < tot; i++)
if (!g[rownum[i]][now])
{
ok
= false;
break;
}
if (ok)
{
rownum[tot]
= now;
dfs(tot
+ 1, now + 1, ans + num[now]);
}
}

int main()
{
//freopen("t.txt", "r", stdin);
while (scanf("%d%d", &n, &m) != EOF)
{
found
= false;
input();
dfs(
0, 0, 0);
if (found)
printf(
"Yes, I found it\n");
else
printf(
"It is impossible\n");
}
return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/110591.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 惨挂阿里笔试题[通俗易懂]

    惨挂阿里笔试题[通俗易懂]昨天阿里笔试,惨挂到一算法题,现分享此题,集网友智慧,看如何解答此题。 请大神们不吝赐教哦!

  • Mac OSX下给树莓派安装Raspbian系统

    Mac OSX下给树莓派安装Raspbian系统

  • 微服务优缺点_微服务优势和不足

    微服务优缺点_微服务优势和不足优点1.每个微服务都很小,这样能聚焦一个指定的业务功能或业务需求;2.微服务能够被小团队单独开发;3.微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的;4.微服务能使用不同的语言开发;5.微服务易于被一个开发人员理解,修改和维护,这样小团队能够更关注自己的工作成果,无需通过合作才能体现价值;6.微服务只是业务逻辑的代码,不会和HTML,CSS或其他界面组件混合;缺点:1.运维要求较高; 2.分布式的复杂性; 3.接口调整成本高; 4.学习难度曲线

    2022年10月22日
  • DHCP 协议(二)「建议收藏」

    DHCP 协议(二)「建议收藏」DHCP的全名叫什么?(DynamicHostconfigurationProtocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作;主要有两个用途:(1)用于内部网或网络服务供应商自动分配IP地址;(2)给用户用于内部网管理员作为对所有计算机作中央管理的手段。功能简述:它主要是通过客户端发送广播数据包给整个物理网段内的所有主机,若局域网内有DHCP服务器时,才会…

  • Java webservice详解「建议收藏」

    Java webservice详解「建议收藏」Javawebservice详解1webservice概述2webservice核心要素2.1SOAP2.2WSDL3webservice的使用场景4webservice的结构5Java中的webservice5.1webservice服务端5.2webservice客户端6WDSL文件说明7webservice请求与响应监控7webservice在Tomcat中发布…

  • java面向对象三大特征及五大原则

    java面向对象三大特征及五大原则java面向对象一、java面向对象的三大特征1、封装(Encapsulation)封转是指属性私有化根据需要提供setter和getter方法来访问属性隐藏具体属性和实现细节,仅对外开放接口控制程序中属性的访问级别目的:增强数据安全性,不能让其他用户随意访问和修改数据,简化编程,使用者不必在意具体实现细节,而只是通过外部接口即可访问类的成员2、继承(Extend)继承是指将…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号