freee Programming Contest 2022(AtCoder Beginner Contest 264)

C - Matrix Reducing

题意

给你一个长和宽为h1,w1h1, w1h1,w1的二维数组aaa,和一个长和宽为h2,w2h2, w2h2,w2的二维数组bbb,问你能否删除aaa数组中的一些行和列使得a=ba = ba=b。

数据范围

1⩽h2⩽h1⩽101 \leqslant h2 \leqslant h1 \leqslant 101⩽h2⩽h1⩽10

1⩽w2⩽w1⩽101 \leqslant w2 \leqslant w1 \leqslant 101⩽w2⩽w1⩽10

思路

数据范围很小,可以采用二进制枚举。假如对于行而言一个二进制数
100001000100001000100001000
则表示第444行和第999行删除,其余行保留。列也同理。

时间复杂度
2h1∗2w1∗h2∗w22 ^ {h_1} * 2 ^{w_1} * h_2 * w_22h1​∗2w1​∗h2​∗w2​

/*
二进制枚举
*/
#include <bits/stdc++.h>
using namespace std;
const int N = 15;
int h1, h2, w1, w2;
int a[N][N], b[N][N];
int main(){cin >> h1 >> w1;for(int i = 1; i <= h1; i ++ ) for(int j = 1; j <= w1; j ++ ) cin >> a[i][j];cin >> h2 >> w2;for(int i = 1; i <= h2; i ++ ) for(int j = 1; j <= w2; j ++ ) cin >> b[i][j];for(int i = 0; i < (1 << h1); i ++ ){for(int j = 0; j < (1 << w1); j ++ ){vector<int>x,y;for(int k = 1; k <= h1; k ++ ) if(i & (1 << (k - 1))) x.push_back(k);for(int k = 1; k <= w1; k ++ ) if(j & (1 << (k - 1))) y.push_back(k);if(x.size() != h2 || y.size() != w2) continue;bool match = true;for(int k = 1; k <= h2; k ++ ){for(int l = 1; l <= w2; l ++ ){if(a[x[k - 1]][y[l - 1]] != b[k][l]){match = false;break;}}}if(match){puts("Yes");return 0;}}} puts("No");return 0;
}

C - Matrix Reducing相关推荐

  1. Bundle Adjustment (BA) in vSLAM or SFM

    文章目录 Overview BA as a NonLinear Least Squares Problem Solved with LM JTJ\mathbf{J}^T \mathbf{J}JTJ s ...

  2. freee Programming Contest 2022(AtCoder Beginner Contest 264)A~D题详细讲解

    目录 博主赛情 网站链接 比赛简介 Contest Information Reason why freee needs AtCoder users freee's business content ...

  3. freee Programming Contest 2022(AtCoder Beginner Contest 264) 题解 (A~D)

    A - "atcoder".substr() Time Limit: 2 sec / Memory Limit: 1024 MB Score : 100100100 points ...

  4. Android 自定义View ——Matrix (矩阵)

    Matrix的作用: Matrix类包含一个3x3矩阵,用于转换坐标 Matrix (矩阵) 的原理很遗憾自己目前也是含糊的很,这里就不说了,记录自己在项目使用的方法, 这里就简单的记录下Matrix ...

  5. Codeforces 903F Clear The Matrix(状态压缩DP)

    题目链接 Clear The Matrix 题意 给定一个$4 * n$的矩形,里面的元素为$'.'$或$'*'$.现在有$4$种正方形可以覆盖掉$'*'$,正方形的边长分别为$1,2,3,4$. 求 ...

  6. ie旋转滤镜Matrix

    旋转一个元素算是一个比较常见的需求了吧,在支持CSS3的浏览器中可以使用transform很容易地实现,这里有介绍:http://www.css88.com/archives/2168,这里有演示ht ...

  7. Eigen(1):Matrix模板类

    Matrix是一个模板类,利用模板类可以定义矩阵类. 矩阵类模板: 1Matrix类有6个模板参数,只需要了解前3个就好了. Matrix<typename Scalar, int RowsAt ...

  8. CUDA Samples: matrix multiplication(C = A * B)

    以下CUDA sample是分别用C++和CUDA实现的两矩阵相乘运算code即C= A*B,CUDA中包含了两种核函数的实现方法,第一种方法来自于CUDA Samples\v8.0\0_Simple ...

  9. 二维码Data Matrix的解码实现(zxing-cpp)

    二维码Data Matrix的介绍可以参考http://blog.csdn.net/fengbingchun/article/details/44279967 ,以下是通过zxing-cpp开源库实现 ...

  10. 二维码Data Matrix编码、解码使用举例

    二维码Data Matrix的介绍见: http://blog.csdn.net/fengbingchun/article/details/44279967  ,这里简单写了个生成二维码和对二维码进行 ...

最新文章

  1. matlab实战系列之人工鱼群算法求解TSP问题原理解析(下篇源码解析)
  2. javascript对象操作总结
  3. wait()和waitpid()的参数解析
  4. “智企云中享“,首届SAP中国云大会召开
  5. 初步看,我要在公司赚取更多的工资,钱多活少离家近
  6. android 调用wcf json,使用 JSONP
  7. windows libusb打开失败_如何彻底解决windows更新问题!
  8. 自制固件iOS4.1刷机、解锁教程
  9. matlab 模式识别工具箱下载,模式识别matlab工具箱
  10. 基于Cocos2d-x游戏引擎实战开发炸弹超人
  11. [小白slam攻略]ROVIO安装运行及保存轨迹用evo评估
  12. 两篇超好的C#操作并口和串口的文章
  13. 《落》用计算机弹,《坦克世界》里的防崩落内衬和水套的意思?AP弹和HE弹的具体用法(主流坦克哪些平适合AP哪些适合HE)?...
  14. 当往日悄然走远,只留下清澈的心
  15. 中国手机市场惊蛰降临:从Counterpoint数据看2020年的5G未来
  16. GStreamer基础教程02——GStreamer概念
  17. 微信小程序----封装request以及对接口进行模块化
  18. 前端 JS实现彩票开奖走势图 连线
  19. 音频转文字软件有哪些?推荐几个录音转文字工具
  20. 【IBM官方文档】DB2 SQLSTATE 消息

热门文章

  1. 华为路由器 环回互通实验(顺时针)
  2. Proximal Algorithms 1 介绍
  3. 通过摄像机视频设备或者流媒体服务器SDK获取到数据转换成RTMP流实现网页手机微信播放
  4. python微信转账记录_python 处理微信对账单数据的实例代码
  5. C# excel 删除重复
  6. linux执行 ifconfig 命令 eth0没有IP地址(intet addr、Bcast、Mask)
  7. 一级路由器静态路由访问二级路由器的方法二
  8. harmonyos蓝牙,Microbit蓝牙配对 (Bluetooth Pairing)
  9. android屏幕大小字体大小,Android字体大小自适应不同分辨率的解决办法
  10. Harbor未授权创建管理员漏洞(CVE-2019-16097)