题目:

给定一个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+回溯)的更多相关文章

  1. UVA - 12113 Overlapping Squares(重叠的正方形)

    题意:给定一个4*4的棋盘和棋盘上所呈现出来的纸张边缘,问用不超过6张2*2的纸能否摆出指定的形状. 分析:2*2的纸在4*4的棋盘上总共有9种放置位置,枚举所有的放置位置即可.枚举情况总共种. #p ...

  2. UVA 12113 Overlapping Squares

    题意: 总共有6个2*2的正方形,判断是否能够成所给的形状. 思路: 一个正方形总共有9种摆放方式,对于整个地图来说摆放方式总共有2的9次方种摆放方式.然后将地图用9*5的数组表示,正方形的位置用其8 ...

  3. UVa 129 Krypton Factor (DFS && 回溯)

    题意 : 如果一个字符串包含两个相邻的重复子串,则称它是“容易的串”,其他串称为“困难的 串”.例如,BB.ABCDACABCAB.ABCDABCD都是容易的串,而D.DC.ABDAB. CBABCB ...

  4. UVA-12113 Overlapping Squares (回溯+暴力)

    题目大意:问能不能用不超过6张2x2的方纸在4x4的方格中摆出给定的图形? 题目分析:暴力枚举出P(9,6)种(最坏情况)方案即可. 代码如下: # include<iostream> # ...

  5. LA 3790 Overlapping Squares DFS

    题意: 给出一个字符矩阵,问能否是不超过6个2×2的正方形组成的. 分析: 每次找一个最表面的正方形然后DFS就好了. 一个正方形被移开后,用一个特殊符号标记上,下次再匹配的时候就直接忽略这些位置. ...

  6. uva 193 Graph Coloring(图染色 dfs回溯)

    Description You are to write a program that tries to find an optimal coloring for a given graph. Col ...

  7. poj1270Following Orders(拓扑排序+dfs回溯)

    题目链接: 啊哈哈.点我点我 题意是: 第一列给出全部的字母数,第二列给出一些先后顺序. 然后按字典序最小的方式输出全部的可能性.. . 思路: 整体来说是拓扑排序.可是又非常多细节要考虑.首先要按字 ...

  8. 素数环(dfs+回溯)

    题目描述: 输入正整数n,把整数1,2...n组成一个环,使得相邻两个数和为素数.输出时从整数1开始逆时针排列并且不能重复: 例样输入: 6 例样输出: 1 4 3 2 5 6 1 6 5 2 3 4 ...

  9. NOJ 1074 Hey Judge(DFS回溯)

    Problem 1074: Hey Judge Time Limits:  1000 MS   Memory Limits:  65536 KB 64-bit interger IO format: ...

随机推荐

  1. Codesys——AD_DA在PID控制中的作用

    1. 摘要 PID控制中用到AD/DA的输入/输出,给出其大致实现思路. 2. 思路 3. 总结 无

  2. http访问方式

    package com.m.billingplug.util; import java.io.IOException; import java.net.UnknownHostException; im ...

  3. flask-migrate 数据迁移

    作用:做数据库迁移依赖:flask-script flask-sqlalchemy 使用 项目结构 manage.py(其它文件内容与flask-sqlalchemy中一样) from s8day13 ...

  4. canvas particles

    var canvas = document.getElementById('canvas'); var ctx = canvas.getContext('2d'); var Grewer = { in ...

  5. json和Jsonp 使用总结(2)

    1.Jsonp的使用 var phoneAgent = navigator.userAgent; var urlDomaintest = " "; function getHref ...

  6. jsonp 监控简陋代码

    url: window.location.href Agent: navigator.userAgent var tkInfo = { VisitUrl: window.location.href, ...

  7. ROS-USB摄像头

    前言:演示使用usb摄像头功能,推荐使用方法二. 首先要有一个usb摄像头,本次使用的是罗技(Logitech)摄像头. 一.使用软件库里的uvc-camera功能包 1.1 检查摄像头 lsusb ...

  8. DP BestCoder Round #50 (div.2) 1003 The mook jong

    题目传送门 /* DP:这题赤裸裸的dp,dp[i][1/0]表示第i块板放木桩和不放木桩的方案数.状态转移方程: dp[i][1] = dp[i-3][1] + dp[i-3][0] + 1; dp ...

  9. 数学 Codeforces Round #219 (Div. 2) B. Making Sequences is Fun

    题目传送门 /* 数学:这题一直WA在13组上,看了数据才知道是计算cost时超long long了 另外不足一个区间的直接计算个数就可以了 */ #include <cstdio> #i ...

  10. ASP.NET MVC应用程序中支持用户使用腾讯QQ和微信以及新浪微博的第三方登录

    什么是第三方授权登录,就是一些大家都会有的帐号如QQ.微信.淘宝.微博等账户.通过那些巨头公司提供的api直接实现登录. 当然,我们是不可能得到你的用户名和密码的.不了解的人,可能会存在这个疑虑.我们 ...