hdu1175
来源:互联网 发布:淘宝极有假货有假货吗 编辑:程序博客网 时间:2024/06/16 14:26
/*
分析:
“if(i!=d&&d!=-1)”而不是“if(i!=d)”,白WA了好几次。
记性真差,以后将有必要的点儿都写下来,记一下,要不再犯
这种错误,而且没有检查出来,不是2死了么。。。
没啥说的,对于搜索还是要注意剪枝吧,这个很~重要。
思路:
没啥说的,代码挺清晰的。
2012-04-25
*/
分析:
简单深搜,62MS。
因为转折数不能超过两次,所以对于1000*1000的,不出意外深搜可行。
犯2了。。。一开始传递的d=-1,所以代码行49里面,应该是“if(i!=d&&d!=-1)”而不是“if(i!=d)”,白WA了好几次。
记性真差,以后将有必要的点儿都写下来,记一下,要不再犯
这种错误,而且没有检查出来,不是2死了么。。。
没啥说的,对于搜索还是要注意剪枝吧,这个很~重要。
思路:
没啥说的,代码挺清晰的。
2012-04-25
*/
#include"stdio.h"#include"string.h"int num[1011][1011];int flag[1011][1011];int n,m;int ans;int x_end,y_end;int dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}};void DFS(int x,int y,int times,int d){int i;int next_x,next_y;///判断1if(ans==1)return ;if(times>2)return ;if(times==2&&x-x_end!=0&&y-y_end!=0) //一会儿试试把这个去掉时间会加多少。 An:不去62MS,去了,7765MS。。。return ;///判断2if(x==x_end&&y==y_end&×<=2){ans=1;return ;}///搜索for(i=0;i<4;i++){next_x=x+dir[i][0];next_y=y+dir[i][1];if(next_x<=0||next_x>n||next_y<=0||next_y>m)continue;if(next_x==x_end&&next_y==y_end);else if(num[next_x][next_y]!=0)continue;if(flag[next_x][next_y]!=0)continue;if(d==-1) //这个怎么优化?这个判断只在第一次DFS的时候用到了,只用了一次。;else if(i!=d)times++;flag[next_x][next_y]=1;DFS(next_x,next_y,times,i);flag[next_x][next_y]=0;if(i!=d&&d!=-1)times--;}}int main(){int i,l;int q;int x_start,y_start;while(scanf("%d%d",&n,&m),m||n){memset(flag,0,sizeof(flag));for(i=1;i<=n;i++){for(l=1;l<=m;l++)scanf("%d",&num[i][l]);}scanf("%d",&q);for(i=0;i<q;i++){scanf("%d%d%d%d",&x_start,&y_start,&x_end,&y_end);if(x_start==x_end&&y_start==y_end){printf("NO\n");continue;}if(num[x_start][y_start]!=num[x_end][y_end]||num[x_start][y_start]==0||num[x_end][y_end]==0){printf("NO\n");continue;}ans=0;flag[x_start][y_start]=1;DFS(x_start,y_start,0,-1);flag[x_start][y_start]=0;if(ans==1)printf("YES\n");elseprintf("NO\n");}}return 0;}
- hdu1175
- hdu1175
- HDU1175
- HDU1175
- HDU1175(DFS)
- hdu1175 bfs
- HDU1175(bfs)
- hdu1175 bfs
- hdu1175连连看
- hdu1175 连连看
- hdu1175连连看
- hdu1175 连连看
- hdu1175 连连看
- hdu1175(连连看)
- hdu1175连连看
- HDU1175连连看
- HDU1175 连连看 DFS
- ACM hdu1175 连连看
- 如何一键导出MySQL数据库
- Queue小例子
- C/C++求对数
- JSP账号密码验证提示
- How uncaught exceptions are handled
- hdu1175
- JAVA的面向对象编程--------课堂笔记
- Win7优化加速[1][珍藏版]
- 黑马程序员——泛型
- tomcat虚拟目录配置
- 程序员面试题精选100题
- automake 搞定-感谢Vin Say
- PHP判断某字符串是否存在于字符串中
- Part1:单例多线程执行模式