hdu 3459 IDA*
来源:互联网 发布:gamestop it 编辑:程序博客网 时间:2024/06/06 18:38
IDA*
AC代码如下:
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;char maps[10][10];int maxdeep;char ans[100];int get_h(){ int cnt = 0; if( maps[2][0] != maps[3][0] || maps[2][7] != maps[3][7] ) cnt++; if( maps[3][6] != maps[3][7] || maps[5][2] != maps[5][3] ) cnt++; if( maps[4][2] != maps[5][2] || maps[3][0] != maps[3][1] ) cnt++; return cnt;}bool check(){ if( !( maps[0][2] == maps[0][3] && maps[0][3] == maps[1][2] && maps[1][2] == maps[1][3] ) ) return false; if( !( maps[2][2] == maps[2][3] && maps[2][3] == maps[3][2] && maps[3][2] == maps[3][3] ) ) return false; if( !( maps[4][2] == maps[4][3] && maps[4][3] == maps[5][2] && maps[5][2] == maps[5][3] ) ) return false; if( !( maps[2][0] == maps[2][1] && maps[2][1] == maps[3][0] && maps[3][0] == maps[3][1] ) ) return false; if( !( maps[2][4] == maps[2][5] && maps[2][5] == maps[3][4] && maps[3][4] == maps[3][5] ) ) return false; if( !( maps[2][6] == maps[2][7] && maps[2][7] == maps[3][6] && maps[3][6] == maps[3][7] ) ) return false; return true;}void rotation_x(){ char temp1 = maps[5][3]; char temp2 = maps[4][3]; maps[5][3] = maps[3][3]; maps[4][3] = maps[2][3]; maps[3][3] = maps[1][3]; maps[2][3] = maps[0][3]; maps[1][3] = maps[2][6]; maps[0][3] = maps[3][6]; maps[2][6] = temp1; maps[3][6] = temp2; temp1 = maps[2][4]; maps[2][4] = maps[2][5]; maps[2][5] = maps[3][5]; maps[3][5] = maps[3][4]; maps[3][4] = temp1;}void rotation_y(){ char temp1 = maps[2][7]; char temp2 = maps[2][6]; for( int i = 7; i >= 3; i -= 2 ){ maps[2][i] = maps[2][i-2]; maps[2][i-1] = maps[2][i-3]; } maps[2][1] = temp1; maps[2][0] = temp2; char temp = maps[1][2]; maps[1][2] = maps[0][2]; maps[0][2] = maps[0][3]; maps[0][3] = maps[1][3]; maps[1][3] = temp;}void rotation_z(){ char temp1 = maps[1][2]; char temp2 = maps[1][3]; maps[1][2] = maps[2][4]; maps[1][3] = maps[3][4]; maps[2][4] = maps[4][3]; maps[3][4] = maps[4][2]; maps[4][3] = maps[3][1]; maps[4][2] = maps[2][1]; maps[3][1] = temp1; maps[2][1] = temp2; char temp = maps[2][2]; maps[2][2] = maps[2][3]; maps[2][3] = maps[3][3]; maps[3][3] = maps[3][2]; maps[3][2] = temp;}void pf(){ cout << endl; for( int i = 0; i < 6; i++ ){ for( int j = 0; j < 8; j++ ){ cout << maps[i][j]; } cout << endl; } cout << endl;}bool DFS( int deep ){ if( deep + get_h() > maxdeep ) return false; if( deep == maxdeep ) return check(); rotation_x(); // pf(); ans[deep] = 'X'; if( DFS( deep + 1 ) ) return true; rotation_x();rotation_x();rotation_x(); rotation_y(); ans[deep] = 'Y'; if( DFS( deep + 1 ) ) return true; rotation_y();rotation_y();rotation_y(); rotation_z(); ans[deep] = 'Z'; if( DFS( deep + 1 ) ) return true; rotation_z();rotation_z();rotation_z(); return false;}int main(){ while( 1 ){ for( int i = 0; i < 6; i++ ){ scanf( "%s", maps[i] ); } if( maps[0][2] == '.' ){ break; } maxdeep = 0; while( true ){ maxdeep++; if( DFS( 0 ) ){ break; } } for( int i = 0; i < maxdeep; i++ ){ cout << ans[i]; } cout << endl; } return 0;}
0 0
- hdu 3459 IDA*
- hdu 1685 Booksort (IDA*)
- hdu 1667 IDA*
- hdu 2234 IDA*
- hdu 1560 IDA*
- hdu 1813 IDA*
- hdu 2918 IDA*
- 【IDA*】hdu 1560
- hdu 1667(IDA*)
- hdu 2234(IDA*)
- hdu 1560(IDA*)
- hdu 1813(IDA*)
- hdu 2918(IDA*)
- HDU-1685-Booksort(IDA*)
- hdu 1685 IDA*
- HDU 1560 IDA*搜索
- hdu 2234+1560 IDA*
- HDU 1560 IDA*
- 证书链(The Certificate Chains)
- (备忘) MFC局部显示窗口
- Oracle体系结构之物理结构
- 某系统日志记录的思考----第四篇,学习
- 学习win32 API开发6-给窗口添加菜单
- hdu 3459 IDA*
- http协议
- Oracle Rman相关命令
- openssl建立证书,非常详细配置ssl+apache
- oracle中的常用函数
- apache增加虚拟目录
- 将Oracle中的数据导出成SQL脚本的方法
- nginx学习之 双向链表nginx_queue_t 性能测试: 10倍于STL!
- android 各种格式的文件调用对应应用