J - 皇后像廣場

题目连接:

http://acm.hust.edu.cn/vjudge/contest/123332#problem/J

Description

Vova was walking along the Statue Square (皇后像廣場) in Hong Kong, when he noticed that the square was paved with multi-colored square tiles. Vova took a careful look at the tiles and realized that they formed some picture. The tiles were large and he couldn't look at all of them at once. Probably one should look at the tile picture from above.

Vova decided to take a photo of a (10 × 10)-tile part of a picture, but he still couldn't cover them with one shot. Then Vova took nine photos, each of them covered a (4 × 4)-tile area of the picture (see the picture below). If we arrange the nine photos correctly, then we can restore the original 10 × 10 picture.

Problem illustration

Unfortunately, soon after printing out the photos Vova forgot not only the arranging order of them, but the correct rotation as well. He can rotate the image on the photo by an arbitrary angle multiple of 90 degrees. Help Vova use the nine photos to restore the original 10 × 10 pattern.

Input

The input contains the nine photos Vova made. The photos are described by 4 × 4 size matrices containing integers from 0 to 99, representing the colors of the corresponding tiles. The numbers on a line are separated by spaces. Each matrix is separated from the next one by an empty line.

Output

Print the original pattern as a 10 × 10 matrix. The matrix elements in the line should be separated by spaces. If there are multiple solutions, you may print any of them. It is guaranteed that at least one solution exists.

Sample Input

1 1 9 9

1 9 1 1

9 1 1 1

9 1 1 9

9 1 1 9

9 1 1 1

9 1 1 1

9 1 1 9

9 1 1 9

9 1 1 1

1 9 1 1

1 1 9 9

9 1 1 9

1 1 1 1

1 1 1 1

9 1 1 9

9 1 1 9

1 1 1 9

1 1 9 1

9 9 1 1

9 1 1 9

1 1 1 9

1 1 1 9

9 1 1 9

9 9 1 1

1 1 9 1

1 1 1 9

9 1 1 9

9 9 9 9

1 1 1 1

1 1 1 1

9 1 1 9

9 1 1 9

1 9 9 1

1 1 1 1

9 9 9 9

Sample Output

1 1 9 9 9 9 9 9 1 1

1 9 1 1 1 1 1 1 9 1

9 1 1 1 1 1 1 1 1 9

9 1 1 9 1 1 9 1 1 9

9 1 1 1 1 1 1 1 1 9

9 1 1 1 1 1 1 1 1 9

9 1 1 9 1 1 9 1 1 9

9 1 1 1 9 9 1 1 1 9

1 9 1 1 1 1 1 1 9 1

1 1 9 9 9 9 9 9 1 1

Hint

题意

给你9个44的矩阵,然后问你能不能用这9个矩阵拼成一个1010的大矩阵的图案。

可以旋转。

题解:

预处理旋转之后的样子,然后直接dfs就好了

不需要剪枝,我猜状态不会很多。。

代码

#include<bits/stdc++.h>
using namespace std; struct node
{
int a[4][4];
}p[9][4];
int flag = 0;
int ans[10][10];
int vis[10];
int xx[9]={0,0,0,3,3,3,6,6,6};
int yy[9]={0,3,6,0,3,6,0,3,6};
void dfs(int x){
if(flag)return;
if(x==9){
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
if(j==0)printf("%d",ans[i][j]);
else printf(" %d",ans[i][j]);
}
printf("\n");
}
flag = 1;
return;
} for(int i=0;i<9;i++){
if(vis[i])continue;
for(int j=0;j<4;j++){
int fff = 0;
for(int t=0;t<4;t++){
for(int k=0;k<4;k++){
if(ans[xx[x]+t][yy[x]+k]==-1)continue;
if(ans[xx[x]+t][yy[x]+k]!=p[i][j].a[t][k]){
fff = 1;
break;
}
}
if(fff)break;
}
if(fff==0){
for(int t=0;t<4;t++){
for(int k=0;k<4;k++){
ans[xx[x]+t][yy[x]+k]=p[i][j].a[t][k];
}
}
vis[i]=1;
dfs(x+1);
if(flag)return;
vis[i]=0;
for(int t=0;t<4;t++){
if(x/3!=0&&t==0)continue;
for(int k=0;k<4;k++){
if(x%3!=0&&k==0)continue;
ans[xx[x]+t][yy[x]+k]=-1;
}
}
}
}
}
}
int main(){
//freopen("1.in","r",stdin);
memset(ans,-1,sizeof(ans));
for(int i=0;i<9;i++){
for(int j=0;j<4;j++)
for(int k=0;k<4;k++)
scanf("%d",&p[i][0].a[j][k]);
for(int j=0;j<4;j++)
for(int k=0;k<4;k++)
p[i][1].a[j][k]=p[i][0].a[k][4-j-1];
for(int j=0;j<4;j++)
for(int k=0;k<4;k++)
p[i][2].a[j][k]=p[i][1].a[k][4-j-1];
for(int j=0;j<4;j++)
for(int k=0;k<4;k++)
p[i][3].a[j][k]=p[i][2].a[k][4-j-1];
}
dfs(0);
}

URAL 1970 J - 皇后像廣場 dfs的更多相关文章

  1. 蓝桥杯之 2n皇后问题(双层dfs,暴力)

    Description 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后 和n个白皇后,使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两 个白皇后都不在同 ...

  2. HDU 2553 N皇后问题(深搜DFS)

    N皇后问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  3. 八皇后问题解题报告(dfs

    这里是代码传送门 所谓八皇后问题,一开始接触,上学期舍友提及的,但是因为各种原因,水平不够,并没有关心,偶然之间,再次遇见,便进行的尝试(棋盘是0-7的,不是1-8的...开始打弄错了) 所谓八皇后问 ...

  4. N皇后问题hdu2553(dfs)

    N皇后问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  5. 2018 Multi-University Training Contest 4 Problem J. Let Sudoku Rotate 【DFS+剪枝+矩阵旋转】

    任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6341 Problem J. Let Sudoku Rotate Time Limit: 2000/100 ...

  6. HDU-6341 Problem J. Let Sudoku Rotate(dfs 剪枝)

    题目:有一个4*4*4*4的数独,每一横每一竖每一个小方块中都无重复的字母,即都为0-9,A-F..有一个已经填好的数独,若干个4*4的方块被逆时针拧转了若干次,问拧转回来至少需要多少次. 分析:很明 ...

  7. URAL 1890 . Money out of Thin Air (dfs序hash + 线段树)

    题目链接: URAL 1890 . Money out of Thin Air 题目描述: 给出一个公司里面上司和下级的附属关系,还有每一个人的工资,然后有两种询问: 1:employee x y z ...

  8. hdu6341 Problem J. Let Sudoku Rotate (dfs)

    题目传送门 题意: 给你16个16宫格的数独,里面是0~F,你可以逆时针旋转里面的每个16宫格 问你它是从标准数独逆时针旋转多少次得到? 思路: 可以知道每个16宫已经是标准的了,接下来只要考虑每行. ...

  9. 洛谷 1219:八皇后 (位运算 & DFS)

    题目链接: https://www.luogu.org/problem/show?pid=1219#sub row:受上面的皇后通过列控制的位置 ld:受上面的皇后通过从右至左的斜对角线控制的位置 r ...

随机推荐

  1. 8 Productivity hacks for Data Scientists & Business Analysts

    8 Productivity hacks for Data Scientists & Business Analysts Introduction I was catching up with ...

  2. html5 canvas结构基础

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. asp.net mvc 根据路由生成正确的url

    假设存在这样一段路由配置: routes.MapRoute( name: "ProductList1_01", url: "pl/{bigSortId}_{smallSo ...

  4. TAU调研咨询

    厦门宇能科技有限公司 GPRS-RTU/DTU.3/4G路由器.无线远程抄表.管网监控 咨询电话:0592-5710250 2017-07-04 9:36:16 您好,欢迎光临.请问有什么可以帮到您? ...

  5. Hibernate 二级缓存疑难点

    一级缓存:缓存实体 二级缓存:缓存实体 Hibernate查询缓存缓存的是查询出来的实体的部分属性结果集和实体的ID(注意这里不是实体). Hibernate查询缓存:对List起作用.但是Hiber ...

  6. poj2056

    寻找向左凸的地方,每个左凸能让S数量-2.上边或下边如果是半个左凸的话则各对应-1 #include <cstdio> #include <cstring> #include ...

  7. jenkins+jmeter结合使用

    事件背景:想实现jmeter每30分钟执行一次,但是夜里不能人工操作,结果度娘,汇总结果如下 1.配置jmeter测试环境,注意修改Jmeter的bin目录下jmeter.properties文件的配 ...

  8. 【前端vue开发】vue开发输入姓名,电话,公司表单提交组件

    <template> <div id="parti-info"> <div> <span>您的姓名:</span> &l ...

  9. 交换机NTP的MD5配置

    1.ntp-service authentication enable  开启NTP身份验证功能 2.ntp-service source-interfer LoopBack0 指定本机发生NTP的端 ...

  10. Batch Normalization 与 Caffe中的 相关layer

    在机器学习领域,通常假设训练数据与测试数据是同分布的,BatchNorm的作用就是深度神经网络训练过程中, 使得每层神经网络的输入保持同分布. 原因:随着深度神经网络层数的增加,训练越来越困难,收敛越 ...