1. 题意:
  2. 给你两个01矩阵,去掉矩阵B的某些行和某些列,问处理后的矩阵B能否变成矩阵A
  3.  
  4. 思路:
  1. 数据较小,状压枚举B矩阵列的数量=A矩阵列的数量时的状态,然后搞定了列,贪心判断B矩阵的行就好了;

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <cmath>
  5. #include <algorithm>
  6. #include <queue>
  7. #include <map>
  8. using namespace std;
  9. #define LL long long
  10. #define INF 0x3f3f3f3f
  11. char a[25][25];
  12. char b[25][25];
  13. bool vis[25];
  14. map<int,int>mp;
  15. int flag;
  16. int n,m,nn,mm;
  17. bool check(int tmp)
  18. {
  19.     int hn=0;
  20.     int ln;
  21.     for(int i=0;i<nn;i++)
  22.     {
  23.         ln=0;
  24.         for(int j=0;j<mm;j++)
  25.         {
  26.             if((tmp&(1<<j))==0) continue;
  27.             if(a[hn][ln]==b[i][j])
  28.                 ln++;
  29.             else
  30.                 break;
  31.         }
  32.         if(ln==m)
  33.             hn++;
  34.         if(hn==n)
  35.             return 1;
  36.     }
  37.     return 0;
  38. }
  39. int main()
  40. {
  41.     scanf("%d%d",&n,&m);
  42.     for(int i=0;i<n;i++)
  43.         scanf("%s",a[i]);
  44.     scanf("%d%d",&nn,&mm);
  45.     for(int i=0;i<nn;i++)
  46.         scanf("%s",b[i]);
  47.     int build=1<<mm;
  48.     flag=0;
  49.     for(int i=0;i<=build;i++)
  50.     {
  51.         int num=0;
  52.         for(int j=0;j<mm;j++)
  53.             if(i&(1<<j))
  54.                 num++;
  55.         if(num==m)
  56.         {
  57.             if(check(i))
  58.             {
  59.                 puts("Yes");
  60.                 return 0;
  61.             }
  62.         }
  63.     }
  64.     puts("No");
  65.     return 0;
  66. }

POJ3734【状压枚举】的更多相关文章

  1. [POJ1681]Painter's Problem(高斯消元,异或方程组,状压枚举)

    题目链接:http://poj.org/problem?id=1681 题意:还是翻格子的题,但是这里有可能出现自由变元,这时候枚举一下就行..(其实这题直接状压枚举就行) /* ━━━━━┒ギリギリ ...

  2. HDU2489【状压枚举】

    题意: 给你n个点的图,然后让你在图里挑m个点,达到sumedge/sumnode最小 思路: 由于数据范围小,状压枚举符合m个点的状态,我是用vactor存了结点位置,也记录了结点的sum值,然后跑 ...

  3. POJ - 1753 Flip Game(状压枚举)

    https://vjudge.net/problem/POJ-1753 题意 4*4的棋盘,翻转其中的一个棋子,会带动邻接的棋子一起动.现要求把所有棋子都翻成同一种颜色,问最少需要几步. 分析 同一个 ...

  4. POJ 1753 Flip Game(高斯消元+状压枚举)

    Flip Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 45691   Accepted: 19590 Descr ...

  5. hdu 4770 状压+枚举

    /* 长记性了,以后对大数组初始化要注意了!140ms 原来是对vis数组进行每次初始化,每次初始化要200*200的复杂度 一直超时,发现没必要这样,直接标记点就行了,只需要一个15的数组用来标记, ...

  6. CF1556F Sports Betting (状压枚举子集DP)

    F 对于一张比赛图,经过缩点,会得到dag,且它一定是transitive的,因此我们能直接把比赛图缩成一个有向链.链头作为一个强连通分量,里面的所有点都是胜利的 定义F(win)表示win集合作为赢 ...

  7. [NYIST32]组合数(状压,枚举,暴力)

    题目链接:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=32 求n个数中挑出r个数字的所有情况,最后倒序输出所有情况. 状压枚举所有情况就是了 ...

  8. HDU 5765 Bonds 巧妙状压暴力

    题意:给一个20个点无向连通图,求每条边被多少个极小割集包括 分析:极小割集是边的集合,很显然可以知道,极小割集恰好吧原图分成两部分(这个如果不明白可以用反证法) 然后就是奉上官方题解:http:// ...

  9. hdu 5823 color II 状压dp

    题目链接 给n个点 n<=18. 然后给出它们两两之间是否有边相连. 问你这个图的所有子集,最少要用多少种颜色来染色, 如果两个点相连, 那么这两个点不能染同样的颜色. 先预处理出所有的点独立集 ...

随机推荐

  1. JavaScript中批量设置Css样式

    设置 input 元素的  属性: document.getElementsByTagName("INPUT")[0].setAttribute("属性",&q ...

  2. 简单label控件 自制

    using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using ...

  3. 通过css选择器class给元素添加cursor的坑

    笔者在chrome中遇到了奇特的问题,在通过class给元素添加cursor的自定义图片时.出现了"Invald property value"提示,crosshair.help等 ...

  4. 九度OJ 1129:Skew数 (大数运算)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:734 解决:548 题目描述: 在 skew binary表示中, 第 k 位的值xk表示xk*(2k+1-1).  每个位上的可能数字是0 ...

  5. if UDP is permitted

    Networking Basics (The Java™ Tutorials > Custom Networking > Overview of Networking) https://d ...

  6. Hibernate总结(转)

    原文:http://blog.csdn.net/yuebinghaoyuan/article/details/7300599 那我们看一下hibernate中整体的内容: 我们一一介绍其中的内容. H ...

  7. 《打造Facebook》

    王淮的<打造Facebook>一书不厚,花半天时间轻松读完.书中没有大段的说教,只有近乎流水的陈述.正如作者所说,打造Facebook这本书由巴克伯格来写再合适不过.可惜他至少在近几年内没 ...

  8. ZOJ - 3954 Seven-Segment Display 【状态标记】

    题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3954 题意 有一块 LED 灯 然后上面有七块灯管 在显示不同数 ...

  9. Code Review 规范

    CodeReview规范 CodeReivew 标准 通用原则 提交 PR 的代码必须保证自测通过 只 review 代码规范.业务逻辑,不 review 架构设计(那是写代码前应该做的事情) 干掉重 ...

  10. java中的break与continue

    1.两者的作用 break:是跳出当前的循环块或者程序块.循环块有for.do while.while,程序块有switch(){case 1: xxx;break;}在循环体中的作用是跳出正在循环的 ...