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;
}

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 前端面试——W3C标准及规范「建议收藏」

    前端面试——W3C标准及规范「建议收藏」作为前端工程师对W3C标准和规范不是很陌生。很多招聘要求中经常提到深入了解W3C标准及规范。那下面就总结一下W3C标准及规范:概念:W3C标准  中文名:万维网联盟,外文名:WorldWideWebConsortium      万维网联盟标准不是某一个标准,而是一些列标准的集合。网页主要有三部分组成:结构(Structure)、表现(Presentation)、行为(B…

    2025年12月12日
    3
  • 404notfound软件下载_浏览器打开网址404

    404notfound软件下载_浏览器打开网址404当网上的那些修改程序池的方法,无法解决此问题时,可以尝试修改以下的参数:1.控制面板–&amp;gt;程序–&amp;gt;启用或关闭Windows功能–&amp;gt;InternetInformationServices–&amp;gt;Web管理工具–&amp;gt;子项全部勾选上.2.InternetInformationServices–&amp;gt;应用程序开发功能–&amp;gt;子项全部勾选上.重

    2025年6月7日
    2
  • mysql5.7 修改用户初始密码

    mysql5.7 修改用户初始密码当用户首次安装mysql数据库时,总是想修改root的初始化密码,我也是,每次都百度一下,下面主要给出一些操作数据库的常用SQL和一些基本概念性的东西。修改用户的初始化密码:SETPASSWORD=PASSWORD(‘yournewpassword’);ALTERUSER‘root’@‘localhost’PASSWORDEXPIRENEVER;flushprivilege

    2022年6月21日
    39
  • arcpy怎么用_吉他入门零基础指法

    arcpy怎么用_吉他入门零基础指法Arcpy基础入门arcpy使用

    2025年7月15日
    3
  • ffmpeg制作视频_跟我学刺绣教学视频教程

    ffmpeg制作视频_跟我学刺绣教学视频教程最近一段时间找时间录制了一些Ffmpeg视频教程,还有录制完毕,会持续更新,内容会包含Ffmeg保存文件,网络流转发,编码,解码,播放器制作,以及服务端搭建等等,适合初学者,有需要的朋友的可以关注:

    2022年8月4日
    6
  • html小写罗马字符怎么写,如何在 LATEX 中插入大小写的罗马字符[通俗易懂]

    html小写罗马字符怎么写,如何在 LATEX 中插入大小写的罗马字符[通俗易懂]擅长:LS-DYNA,AUTODYNLATEX不直接支持显示大小写罗马数字,但是可以通过自定义命理来实现。首先在文章的导言区加入上面四行\makeatletter\newcommand{\rmnum}[1]{\romannumeral#1}\newcommand{\Rmnum}[1]{\expandafter\@slowromancap\romannumeral#1@}\makeatothe…

    2022年9月28日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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