uva387A Puzzling Problem
来源:互联网 发布:jsp引入java代码 编辑:程序博客网 时间:2024/06/04 18:00
这道题相对比较简单,直接误脑暴搜。
pe了两次。。。。
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;char n,block[5][4][4],info[5][2],area[4][4],ok;void dfs(int index){//printf("test%d",index);if(ok==1)return ;int i,j,t,l,flag=1;if(index==n){for(i=0;i<4;i++){for(j=0;j<4;j++)if(area[i][j]==0)flag=0;}if(flag==1){ok=1;for(i=0;i<4;i++){for(j=0;j<4;j++)printf("%d",area[i][j]);//if(i!=3)printf("\n");}}return ;}for(i=0;i<=4-info[index][0];i++){for(j=0;j<=4-info[index][1];j++){for(t=0;t<info[index][0];t++){for(l=0;l<info[index][1];l++){if(block[index][t][l]==1&&area[i+t][j+l]!=0)goto next;}}next:if(t==info[index][0]&&l==info[index][1]){for(t=0;t<info[index][0];t++){for(l=0;l<info[index][1];l++){if(block[index][t][l]==1)area[i+t][j+l]=index+1;}}dfs(index+1);for(t=0;t<info[index][0];t++){for(l=0;l<info[index][1];l++){if(block[index][t][l]==1)area[i+t][j+l]=0;}}}}}}int main(){int i,j,t,a,b,help=0;while(scanf("%d",&n)&&n){if(help!=0)printf("\n");help++;memset(area,0,16);ok=0;for(i=0;i<n;i++){scanf("%d %d",&a,&b);info[i][0]=a,info[i][1]=b;for(j=0;j<a;j++)for(t=0;t<b;t++)scanf("%1d",&block[i][j][t]);//%1d}dfs(0);if(ok==0)printf("No solution possible\n");}return 0;}
0 0
- uva387A Puzzling Problem
- UVa387 - A Puzzling Problem
- uva387 A Puzzling Problem
- uva 387 - A Puzzling Problem
- uva 387 A Puzzling Problem
- UVA 387 - A Puzzling Problem
- UVA - 387 A Puzzling Problem
- UVa 387 - A Puzzling Problem
- uva 387 A Puzzling Problem (回溯)
- UVA - 387 A Puzzling Problem(回溯)
- UVA 387 A Puzzling Problem(dfs + 模拟)
- UVa 387 - A Puzzling Problem 解题报告(暴力)
- [DLX精确覆盖] hdu 1603 A Puzzling Problem
- Puzzling C
- 一小段puzzling的代码
- problem
- Problem
- problem
- cocos2d-x基本知识点(6)---动作系列(下)
- md5加密 实例
- Python2.7学习笔记1 输入输出函数
- codeblocks中对代码的三种测试时间方法
- 在字符串中找出连续最长的数字串
- uva387A Puzzling Problem
- 基于Node.js + socket.io实现WebSocket的聊天DEMO
- 通过SQL来伪造两个日期之间的季度数据
- PS 滤镜—— 径向模糊
- hibernate一级缓存,二级缓存,三级缓存,缓存算法及配置。
- 三维地图是怎么创立的
- C++ 单例模式 拷贝构造函数 手动实现
- 制作根文件系统
- POJ_3299