时间:2015-01-21 来源:

POJ1324HoledoxMoving贪吃蛇状态压缩BFS 【编程语言】

Description

During winter, comes out,1). Holedox's body, can be represented block by block. And let B1(r1,c2) .. BL(rL, where Bi is adjacent to Bi+1 in the lair for 1 <= i <=L-1, BL is its tail. To move in the lair, which is neither a stone nor occupied by its body. Then it moves the head into the vacant square, each other block of its body is moved into the square occupied by the corresponding previous block. For example, at the beginning the body of Holedox can be represented as B1(4,2) B3(3,1). During the next step,1) is the only square that the head can be moved into,1), B3 into B2, the body of Holedox locates in B1(5,1)B3(4,2) (see the Figure 3). Given the map of the lair and the original location of each block of Holedox's body,1). Input

The input consists of several test cases. The first line of each case contains three integers n, m<=20) and L (2<=L<=8), the number of columns in the lair and the body length of Holedox, indicating the original position of each block of Holedox's body,c1) to BL(rL, where 1<=ri<=n,1<=i<=L. The next line contains an integer K, indicating the location of each square of stone. Then a blank line follows to separate the cases. The input is terminated by a line with three zeros. Note: Bi is always adjacent to Bi+1 (1<=i<=L-1) and exit square (1,y,head,0,1,0,-1}; int bit[3][3]; //偏移大小数组 x ,n,0,0,b=1; q[0]=head; while(a<b) { head=q[a++]; if(head.x==1&&head.y==1) { cout<<head.step<<endl; return ; } for(int i=0; i<4; i++) { rear.x=head.x+dir[i][0]; rear.y=head.y+dir[i][1]; if(rear.x<1||rear.y<1||rear.x>m||rear.y>n||viss[rear.x][rear.y]) continue; int j,tx=head.x,tstate=head.state; rear.state=head.state%(1<<((len-2)*2)); //去掉四进制的最高位 %1000..(二进制) rear.state=rear.state*4+bit[head.x-rear.x+1][head.y-rear.y+1]; for(j=1; j<len; j++) //是否碰到身体 { t=tstate%4; tstate/=4; tx+=dir[t][0]; ty+=dir[t][1]; if(tx==rear.x&&ty==rear.y) break; } if(j<len||vis[rear.x][rear.y][rear.state]) continue; vis[rear.x][rear.y][rear.state]=1; rear.step=head.step+1; q[b++]=rear; } } cout<<-1<<endl; return ; } int main() { int i,nn,&m,&len)&&(m||n||len)) { init(); int a,&snake[i][0],&nn); while(nn--) { scanf("%d%d",&b); viss[a][b]=1; } head.state=0; for(i=len-1; i>=1; i--) head.state=head.state*4+bit[snake[i][0]-snake[i-1][0]+1][snake[i][1]-snake[i-1][1]+1]; //第三为元素 state head.x=snake[0][0]; head.y=snake[0][1]; head.step=0; vis[head.x][head.y][head.state]=1; printf("Case %d: ",++test); bfs(); } return 0; }  

点击次数:5869
作者:
web前端行业资讯
Web new NewsList
英特尔宣布与法拉利跨界合作欲将AI技术用于赛车运动 ,,2018年01月11日甲骨文服务器出漏洞:攻击者用漏洞挖矿获取加密货币 ,,2018年01月11日用深度学习设计图像视频压缩算法:更简洁、更强大 ,,2018年01月11日Ubuntu内核和NVIDIA更新:修复Meltdown和Spectre两处漏洞 ,,2018年01月11日AntDesign3.1.1发布,阿里企业级UI设计语言 ,,2018年01月11日微信「跳一跳」带火小游戏,开发者如何快速上手? ,,2018年01月11日谷歌公布最新安卓系统份额:你用上奥利奥了么? ,,2018年01月11日腾讯开发出“3D音效”算法:普通耳机实现3D实时语音效果 ,,2018年01月11日谷歌工程师点赞中国程序员实现Node.js启动超4倍提速 ,,2018年01月11日三星电子总裁兼CE部门负责人金炫奭:万物互联时代到来 ,,2018年01月11日NVIDIA和大众合作建立智能驾驶助手 ,,2018年01月11日GIMPS项目报告发现已知最大素数 ,,2018年01月11日微软与生物技术公司开展AI驱动的血液检测同时诊断数十种疾病 ,,2018年01月11日微软跨平台移动开发工具套件HockeyApp宣布免费 ,,2018年01月11日《硅谷》里神乎其神的压缩技术,AI正在一点点做出来 ,,2018年01月11日LinuxMint19代号敲定为“Tara”预计2018年5月至6月期间发布 ,,2018年01月11日Facebook发布wav2letter工具包,用于端到端自动语音识别 ,,2018年01月11日开源数据库ArangoDB正进行约1156万美元股权融资 ,,2018年01月11日IntelCPU漏洞闹大:腾讯云紧急升级 ,,2018年01月11日2018年1月全球数据库排名:Redis夺回第八 ,,2018年01月11日Lyft将联手无人驾驶公司于CES上展示无人驾驶汽车 ,,2018年01月11日京东X无人超市首家社会门店开业:刷脸进、微信自动结算 ,,2018年01月11日担心被AI取代是杞人忧天?高晓松跨年演讲说的有几分对 ,,2018年01月11日免费授权技术许可Intel宣布在未来CPU中集成雷电3 ,,2018年01月11日算法决定你在社交媒体上看到的信息 ,,2018年01月11日谷歌安全博客披露“英特尔内核漏洞”更多细节 ,,2018年01月04日Postgres10开发者新特性 ,,2017年12月28日阿里巴巴、狗尾草、苏大联合论文:基于对抗学习的众包标注用于中文命名实体识别 ,,2017年12月28日柯洁的2017:20岁,与AI斗与人类斗,其乐无穷 ,,2017年12月28日如果机器人拥有痛觉,这个世界会有哪些不一样? ,,2017年12月28日企业建模工具EnterpriseArchitect9.2发布 1,收藏 ,,2016年06月23日9.9递归和动态规划(八)——给定数量不限的硬币,币值为25分,10分,5分,1分,计算n分有几种表示法 【编程语言】2015年08月16日FZU1853NumberDeletion(贪心) 【综合】2015年08月14日袖珍型HTTP服务器Ashd0.9发布 ,,2016年06月29日github上Devstack的一些变动,截至8.20 【编程语言】2015年08月24日ZOJ3699DakarRally(贪心) 【编程语言】2015年07月13日ASP.NETMVC4中的JSON数据交互总结 【架构设计】2015年05月18日MYSQLIFNULL函数的使用2014年11月17日hadoop学习笔记--哪些场景不适合哪些场景适合 【综合】2015年03月10日从父页面读取和操作iframe中内容方法2014年01月29日node.js之mysql包使用说明【编程语言】2014年11月17日zoj2921Stock(贪心) 【编程语言】2015年03月16日chmod,chgrp,chown命令修改文件权限 【编程语言】2014年12月25日Problem1567-D-Sloth'sAngry(递归+贪心)【编程语言】2015年04月24日leetcode_8_StringtoInteger(atoi) 【系统运维】2015年01月29日吹响产品“集结号”,百度云摄像头的深谋远虑【架构设计】2014年11月08日php5non-thread-safe和thread-safe这两个版本的区别分析2014年01月29日《网络协议》路由协议 【移动开发】2014年11月27日HTML5权威指南读书笔记【第三部分】 【互联网】2014年12月09日巧用Logcat把日志记录到文件【系统运维】2015年02月27日Android---54---WebView初学 【架构设计】2015年06月11日POJ3304Segments(计算几何)【架构设计】2015年03月20日php获取远程网页内容的函数2014年01月29日HTML+JavaScript实现链式运动特效 【移动开发】2014年11月11日【POJ2699】TheMaximumNumberofStrongKings枚举(二分)+网络流check、 【互联网】2015年01月09日SYN攻击防护措施【互联网】2015年07月28日【翻译自mos文章】SYSAUX表空间里边存放的内容【移动开发】2015年04月24日我所理解的并发#2:两种策略 【编程语言】2015年03月16日.net集合对象解惑篇【数据库】2015年01月04日每日定时导入hive数据仓库的自动化脚本 【互联网】2015年05月12日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)