UVA - 12113 Overlapping Squares(dfs+回溯)
题目:
给定一个4*4的棋盘和棋盘上所呈现出来的纸张边缘,问用不超过6张2*2的纸能否摆出这样的形状。
思路:
dfs纸的张数,每一张中枚举这张纸左上角这个点的位置,暴力解题就可以了。
这个题的覆盖太恶心了,很容易搞混~~~(因为搞混一直TLE+WA…………)
代码:
#include <bits/stdc++.h>
#define inf 0x3f3f3f3f
#define MAX 1000000000
#define mod 1000000007
#define FRE() freopen("in.txt","r",stdin)
#define FRO() freopen("out.txt","w",stdout)
using namespace std;
typedef long long ll;
typedef pair<int,int> P;//first-距离 second-编号
const int maxn = ;
int ans[][],mp[][];
char str[][]; bool judge(){
for(int r=; r<; r++){
for(int c=; c<; c++){
if(ans[r][c]!=mp[r][c]){
return false;
}
}
}
return true;
} void copyArray(int a[][],int b[][]){
for(int i=; i<; i++){
for(int j=; j<; j++){
a[i][j] = b[i][j];
}
}
} void putPapper(int x,int y){//-95 |124
mp[x][y+]=mp[x][y+]=;
mp[x+][y+]=mp[x+][y+]=; //mp[x][y]=mp[x][y+2]=mp[x][y+4]=32;
mp[x+][y+]=;
mp[x+][y+]=mp[x+][y+]=mp[x+][y+]=; mp[x+][y]=mp[x+][y+]=;
mp[x+][y]=mp[x+][y+]=;
} bool dfs(int deep){
if(deep>) return false;
for(int i=; i<; i++){
for(int j=; j<=; j+=){
int temp[][];
copyArray(temp,mp);
putPapper(i,j);
if(judge())return true;
if(dfs(deep+))return true;
copyArray(mp,temp);
}
}
return false;
} void check(){
for(int i=; i<; i++){
for(int j=; j<; j++){
printf("%3d",ans[i][j]);
}
printf("\n");
}
printf("\n\n\n\n");
} int main(){
//FRE();
int kase = ;
while(gets(str[])&&str[][]!=''){
memset(mp,,sizeof(mp));
memset(ans,,sizeof(ans));
for(int i=; i<; i++){
gets(str[i]);
}
for(int i=; i<; i++){
for(int j=; j<; j++){
if(str[i][j]=='_') ans[i][j]=;
else if(str[i][j]=='|') ans[i][j]=;
}
}
//check(); if(dfs()){
printf("Case %d: Yes\n",++kase);
}else{
printf("Case %d: No\n",++kase);
}
}
return ;
}
UVA - 12113 Overlapping Squares(dfs+回溯)的更多相关文章
- UVA - 12113 Overlapping Squares(重叠的正方形)
题意:给定一个4*4的棋盘和棋盘上所呈现出来的纸张边缘,问用不超过6张2*2的纸能否摆出指定的形状. 分析:2*2的纸在4*4的棋盘上总共有9种放置位置,枚举所有的放置位置即可.枚举情况总共种. #p ...
- UVA 12113 Overlapping Squares
题意: 总共有6个2*2的正方形,判断是否能够成所给的形状. 思路: 一个正方形总共有9种摆放方式,对于整个地图来说摆放方式总共有2的9次方种摆放方式.然后将地图用9*5的数组表示,正方形的位置用其8 ...
- UVa 129 Krypton Factor (DFS && 回溯)
题意 : 如果一个字符串包含两个相邻的重复子串,则称它是“容易的串”,其他串称为“困难的 串”.例如,BB.ABCDACABCAB.ABCDABCD都是容易的串,而D.DC.ABDAB. CBABCB ...
- UVA-12113 Overlapping Squares (回溯+暴力)
题目大意:问能不能用不超过6张2x2的方纸在4x4的方格中摆出给定的图形? 题目分析:暴力枚举出P(9,6)种(最坏情况)方案即可. 代码如下: # include<iostream> # ...
- LA 3790 Overlapping Squares DFS
题意: 给出一个字符矩阵,问能否是不超过6个2×2的正方形组成的. 分析: 每次找一个最表面的正方形然后DFS就好了. 一个正方形被移开后,用一个特殊符号标记上,下次再匹配的时候就直接忽略这些位置. ...
- uva 193 Graph Coloring(图染色 dfs回溯)
Description You are to write a program that tries to find an optimal coloring for a given graph. Col ...
- poj1270Following Orders(拓扑排序+dfs回溯)
题目链接: 啊哈哈.点我点我 题意是: 第一列给出全部的字母数,第二列给出一些先后顺序. 然后按字典序最小的方式输出全部的可能性.. . 思路: 整体来说是拓扑排序.可是又非常多细节要考虑.首先要按字 ...
- 素数环(dfs+回溯)
题目描述: 输入正整数n,把整数1,2...n组成一个环,使得相邻两个数和为素数.输出时从整数1开始逆时针排列并且不能重复: 例样输入: 6 例样输出: 1 4 3 2 5 6 1 6 5 2 3 4 ...
- NOJ 1074 Hey Judge(DFS回溯)
Problem 1074: Hey Judge Time Limits: 1000 MS Memory Limits: 65536 KB 64-bit interger IO format: ...
随机推荐
- 加载jQuery库
使用google <head> <script type="text/javascript" src="http://ajax.googleapis.c ...
- 控件CListCtr详解
1.CListCtrl控件 CListCtrl控件在数据库编程中是用得比较多的控件之一,也是Window控件中较难掌握的一个控件.他可以有四显示方式,Report.List.Icon.SmallIco ...
- 深入理解JMM(Java内存模型) --(五)锁
锁的释放-获取建立的happens before 关系 锁是Java并发编程中最重要的同步机制.锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息. 下面是锁释放-获取的示例代 ...
- RDA PQ工具使用 (屏参调整)
使用客户规格书,制作屏参文件. 注意:,必填区和计算区,必填区根据屏参的SPEC填写,具体的屏参文件参数通过点击“Calc Sync”生成. 如:HV320WHB-N81的SPEC: 打开“Color ...
- bzoj2466
高斯消元+搜索 很明显每个开关只能按一次,那么我们可以想到高斯消元,其实就是解异或方程组,但是最后会有一些自由元,也就是有x+y=z,x+y=z这种一样的方程就会产生自由元,那么我们爆搜自由元取值,每 ...
- setsockopt 设置socket 详细用法(转载)
转自:http://www.cppblog.com/killsound/archive/2009/01/16/72138.html 1.closesocket(一般不会立即关闭而经历TIME_WAIT ...
- bzoj 1578: [Usaco2009 Feb]Stock Market 股票市场【背包】
参考:https://blog.csdn.net/mars_ch/article/details/53011234 我背包真是好不熟练啊-- 第一天买了第三天卖相当于第一天买了第二天卖第二天再买第三天 ...
- Linux学习之01_基础命令介绍
初学Linux,还在摸索中,在这个过程中希望能记录下学习到的东西,参考的的书籍为<鸟哥的Linux私房菜> 在这里学到的主要命令有这几个: data cal bc man shutdown ...
- python re的使用
re 正则表达式操作 本模块提供了类似于Perl的正则表达式匹配操作.要匹配的模式和字符串可以是Unicode字符串以及8位字符串. 正则表达式使用反斜杠字符('\')来表示特殊的形式或者来允许使用 ...
- WCF wsdlexception(at/html):faultCode=INVALID_WSDL
WCF 部署正常,通过浏览器查看服务也OK,但是通过SOAP UI创建客户端请求时就异常: wsdlexception(at/html):faultCode=INVALID_WSDL: Expecte ...