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: ...
随机推荐
- beego4---web项目结构
app.conf appname = blog1 httpport = runmode = dev controllersmy package controllersmy //跟外面的包名一致 imp ...
- hdoj--1872--稳定排序(水题)
稳定排序 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...
- 阿里Java开发规约笔记
借助阿里开发规约,回顾一下Java开发编码基础方面的知识,结合自己使用中遇到的问题,记录一下规约中以前翻过的错.有共鸣的问题. 1.覆写方法时要加上@Override注解.重写一个类型T的equals ...
- bzoj3786
splay维护dfs序 我们发现有移动子树这种操作,树剖是做不了了,又要实现子树加,lct又维护不了了,这时我们用splay维护入栈出栈序来支持这些操作.我们记录每个点的入栈时间和出栈时间,这样一个闭 ...
- 2-4 原生小程序 - 自带组件及API
获取用户的信息有两种,一种是不需要登录的,我们只需要获取用户的头像,还有微信的名.还有一种是登录的,就是登录后台校验的,就是获取用户的openid. webview,可以内嵌一个网页,类似于原生的开发 ...
- js滚轮事件需要注意的兼容性问题
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- LaTex简历排版
为了写好简历,倒腾了好几天的Latex,主要是因为中文支持问题还有morderncv的更新问题... 1. http://www.ctex.org/CTeXDownload/ 建议下载v2.9.2. ...
- Vigenère密码 2012年NOIP全国联赛提高组(字符串模拟)
P1079 Vigenère 密码 题目描述 16 世纪法国外交家 Blaise de Vigenère 设计了一种多表密码加密算法――Vigenère 密 码.Vigenère 密码的加密解密算法简 ...
- Rabbitmq笔记一
几个基本概念 Producer 生产者,发送消息的一方,图中左侧的client. Consumer 消费者,接收消息的一方,图中后侧的client. Broker 消息中间件的服务节点,一般一个Rab ...
- Linux环境下修改MySQL数据库存储引擎
今天在执行Oracle数据库迁移至MySQL数据库时报出了一个错误信息: Specified key was too bytes 百度发现,原来需要更改MySQL数据库的存储引擎为InnoDB,查询目 ...