UVA 12113 - Overlapping Squares
来源:互联网 发布:js number() 编辑:程序博客网 时间:2024/06/05 04:45
#include <cstdio>#include <set>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = (1<<9);int a[9][8]={{1,3,9,13,18,19,21,22}};int clean[9][4]={{10,11,12,20}};void init(){ int kk=1; for(int d = 0 ;d<=2;d++) for(int l = 0;l<=2;l++)if(d||l){ //cout<<kk<<": "; for(int i=0;i<8;i++){ a[kk][i] = a[0][i]+d*9+l*2; } for(int i=0;i<4;i++){ clean[kk][i]=clean[0][i]+d*9+l*2; } kk++; }}int bitcount(int x){return x==0 ? 0 : bitcount(x/2)+(x&1);}int b[10],c[45],maze[45];char str[100];int read_input(){ int cnt=0,kk=0; for(int i=0;i<5;i++){ if(gets(str)==NULL) return -1; if(str[0]=='0') return -1; for(int j=0;j<9;j++){ maze[kk++] = str[j] == 32 ? 0 : 1; if(str[j]!=32) cnt++; } } return cnt;}inline void stick(int p,int& cnt){ for(int j=0;j<8;j++){ if(c[a[p][j]]==0) cnt++; c[a[p][j]]=1; } for(int j=0;j<4;j++){ if(c[clean[p][j]] == 1) cnt--; c[clean[p][j]]=0; }}int main(){ init(); int kase=1,goal_cnt; while((goal_cnt = read_input())&&goal_cnt!=-1){ void debug(); bool flag=false; for(int s=0;s<maxn;s++){ int n = bitcount(s); if(n > 6 || 8*n<goal_cnt) continue; int k=0; for(int i=0;i<9;i++) if((s>>i)&1) b[k++] = i; do{ memset(c,0,sizeof(c)); int cnt=0; for(int i=0;i<n;i++){ int p = b[i]; stick(p,cnt); } if(cnt==goal_cnt){ int ok=1; for(int i=0;i<45;i++)if(maze[i]!=c[i]){ ok =0; break; } if(ok) {flag=true;} } if(flag) break; }while(next_permutation(b,b+k)); } printf("Case %d: %s\n",kase++,flag ? "Yes":"No"); } return 0;}void debug(){ memset(c,0,sizeof(c)); int cnt=0; stick(3,cnt); stick(4,cnt); stick(7,cnt); for(int i=0;i<45;i++) cout<<c[i]<<" "; cout<<endl; cout<<cnt<<"**\n";}
0 0
- UVA 12113 - Overlapping Squares
- UVa 12113 - Overlapping Squares
- uva 12113 Overlapping Squares
- Overlapping Squares (UVA
- Overlapping Squares UVA
- UVA 4994 Overlapping Scenes
- UVa 460 - Overlapping Rectangles
- UVA 1453 Squares
- uva 256 - Quirksome Squares
- UVA 1453 - Squares
- UVa:11407 Squares
- UVa 256 - Quirksome Squares
- UVA-201Squares
- UVa 201 - Squares
- UVa 201 - Squares
- UVa 201 - Squares
- UVA-201 Squares
- UVA - 201 Squares
- solr的multivalued使用说明
- python 的 do ~ while 语法
- Chrome内核解析 -- 绘制引擎基础篇:绘图上下文(RenderingContext, GraphicsContext)
- MSP430单片机无线功能的扩展一:HC-06蓝牙模块
- 关于inter集成显卡快捷键冲突问题
- UVA 12113 - Overlapping Squares
- 使用SqlDependency类及利用SQL2008的Service Broker来检测数据改动的实现(二)
- mos管开关电路整理(转)
- 《Java语言程序设计(第2版)》
- 八大理由告诉你,微信电商为什么走不通
- android清单文件属性
- 打印螺旋数组
- 就回家了凉快凉快凉快凉快凉快凉快
- 反渗透设备:反渗透水处理设备技术特点剖析