POJ 3600 Subimage Recognition(dfs)
来源:互联网 发布:淘宝店铺封了怎么解封 编辑:程序博客网 时间:2024/05/22 14:15
Subimage Recognition
题意:r*c的01格子1,和R*C的01个格子2( <= 20),能否通过删除格子2的某些行和列使得格子1和格子2完全相同。
思路:暴力枚举删除某些列,然后观察是否完全匹配即可;
代码:
#include <cstdio>#include <iostream>#include <algorithm>using namespace std;char mp1[25][25], mp2[25][25];int a[25];int r, c, R, C; bool judge(){int id = 0, row = 1;while(id < R){int fnd = 0, i;for(i = id + 1; i <= R; i++){int flag = 1;for(int j = 0, col = 1; j < c; j++, col++){if(mp1[row][col] != mp2[i][a[j]]){flag = 0;break;}}if(flag)//此行匹配成功 {fnd = 1;break;}}if(!fnd)//到结束也没匹配成功 break;row++;id = i;}return row > r;} bool dfs(int index, int num){if(num == c) return judge();if(index > C) return false;//删除此列 if(dfs(index + 1, num)) return true;//不删除此列 a[num] = index;//记录所选列 if(dfs(index + 1, num + 1)) return true;return false;} int main(){while(cin>>r>>c){for(int i = 1; i <= r; i++)cin>>mp1[i];cin>>R>>C;for(int i = 1; i <= R; i++)cin>>mp2[i];puts(dfs(1, 0) ? "Yes" : "No");}return 0;}
阅读全文
1 0
- POJ 3600 Subimage Recognition(dfs)
- POJ 3600 Subimage Recognition dfs
- POJ 3600 Subimage Recognition【递归DFS + 模拟枚举】
- POJ 3600 Subimage Recognition 搜索
- [POJ 3600] Subimage Recognition [枚举+贪心]
- Subimage Recognition
- Subimage Recognition
- 2016弱校联盟十一专场10.7(12点场)-M. Subimage Recognition
- POJ3600Subimage Recognition(dfs)
- POJ 3600 dfs
- POJ 3194 (DFS)
- POJ--2386(dfs)
- POJ-2492(DFS)
- POJ-1655(DFS)
- POJ 2386(DFS)
- POJ Hopscotch (DFS)
- POJ-2197(DFS)
- POJ 2488(DFS)
- 【YDKJS笔记】一、入门与进阶
- 线程与进程的概念和区别
- 【模板】倍增法求lca
- Git仓库SSH Key 的配置
- 数据结构 循环链表
- POJ 3600 Subimage Recognition(dfs)
- leetcode 80. Remove Duplicates from Sorted Array II
- TensorFlow在MNIST数据集上实现神经网络
- Java编程规范
- jdk源码二 Object对象你懂了吗?
- 二叉树寻找最近公共祖先
- 幂等性理解和解决方案
- Java transient关键字使用小记
- Activiti选人页面的实现