题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5335

     #include<stdio.h>
     #include<cstring>
     #include<cmath>
     #include<algorithm>
     using namespace std;
     ;
     char R[MAXN][MAXN];
     bool used[MAXN][MAXN];
     ], yy[];
     ] = { ,  ,  , -};
     ] = { , -,  ,  };
     int n,m;
     void bfs(){
         memset(used,false,sizeof(used));
         used[][] = true;
         , h = ;
         xx[p] = ;
         yy[p] = ;
         for(; p <= h; ++p)
             '){
                 ; i < ; ++i){
                     int X = xx[p]+mx[i];
                     int Y = yy[p]+my[i];
                      < X && X <= n &&  < Y && Y <= m && !used[X][Y]){
                         h++;
                         xx[h] = X;
                         yy[h] = Y;
                         used[X][Y] = true;
                     }
                 }
         }//注意区分XY
         ' && used[n][m]){
             printf("0\n");
             return;
         }
         ;
         ; i <= n; ++i)
             ; j <= m; ++j)
                 if(used[i][j]){
                     ma = max(ma,i+j);
                 }
         printf(");
         for( int i = ma; i < n+m; ++i){
             ';
             ; j <= n; ++j )
                  <= i-j && i-j <= m && used[j][i-j]){
                     mi = min(mi,R[j+][i-j]);
                     mi = min(mi,R[j][i-j+]);
                 }
             printf("%c",mi);
             ; j <= n; ++j )
                  <= i-j && i-j <= m && used[j][i-j]){
                     ][i-j] == mi)
                         used[j+][i-j] = true;
                     ] == mi)
                         used[j][i-j+] = true;
                 }
         }
         printf("\n");
     }
     int main()
     {
         freopen("../Ъ§Он/1009/1009.in", "r", stdin);
         freopen("a.out", "w", stdout);
         int T;
         scanf("%d",&T);
         while(T--){
             scanf("%d%d",&n,&m);
             ; i <= n; ++i )
                 scanf();
             ; i <= n+; ++i){
                 R[i][] = R[i][m+] = ';
             }
             ; i <= m+; ++i){
                 R[][i] = R[n+][i] = ';
             }
             bfs();
 //            for ( int i = 0; i <= n +1; i++){
 //                for( int j = 0; j <= m+1; j++)
 //                    printf("%c",R[i][j]);
 //                printf("\n");
 //            }
         }
         ;
     }

hdoj 5335 Walk Out的更多相关文章

  1. BFS+贪心 HDOJ 5335 Walk Out

    题目传送门 /* 题意:求从(1, 1)走到(n, m)的二进制路径值最小 BFS+贪心:按照标程的作法,首先BFS搜索所有相邻0的位置,直到1出现.接下去从最靠近终点的1开始, 每一次走一步,不走回 ...

  2. hdu 5335 Walk Out (搜索)

    题目链接: hdu 5335 Walk Out 题目描述: 有一个n*m由0 or 1组成的矩形,探险家要从(1,1)走到(n, m),可以向上下左右四个方向走,但是探险家就是不走寻常路,他想让他所走 ...

  3. 离散化+BFS HDOJ 4444 Walk

    题目传送门 /* 题意:问一个点到另一个点的最少转向次数. 坐标离散化+BFS:因为数据很大,先对坐标离散化后,三维(有方向的)BFS 关键理解坐标离散化,BFS部分可参考HDOJ_1728 */ # ...

  4. HDU 5335——Walk Out——————【贪心】

    Walk Out Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Su ...

  5. HDU 5335 Walk Out(多校)

    Walk Out Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Su ...

  6. hdu 5335 Walk Out (2015 Multi-University Training Contest 4)

    Walk Out                                                                         Time Limit: 2000/10 ...

  7. hdu 5335 Walk Out 搜索+贪心

    Walk Out Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total S ...

  8. 2015 Multi-University Training Contest 4 hdu 5335 Walk Out

    Walk Out Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Su ...

  9. HDOJ 5001 Walk

    概率DP dp[j][d] 表示不经过i点走d步到j的概率, dp[j][d]=sigma ( dp[k][d-1] * Probability ) ans = sigma ( dp[j][D] ) ...

随机推荐

  1. BZOJ 1617 渡河问题

    普及组dp. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm ...

  2. Linux管道的实现机制

    7.1.1 Linux管道的实现机制 在Linux中,管道是一种使用非常频繁的通信机制.从本质上说,管道也是一种文件,但它又和一般的文件有所不同,管道可以克服使用文件进行通信的两个问题,具体表现为: ...

  3. vim 常用命令总结

    https://www.ibm.com/developerworks/cn/linux/l-cn-tip-vim/ 1 文档开头末尾 [[ 开头 ]]末尾 2 删除全部 :%d 3 剪切.复制.粘贴 ...

  4. HDU2102 A计划

    解题思路:一道简单题,却WA了十几发,犯几个低级错误.还是不能急躁,     内心要平静,具体分析见代码: #include<iostream> #include<cstdio> ...

  5. win32 API 学习

    SendMessage 函数原型 LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam) 详情:百度百科     msd ...

  6. javascript中createTextRange用法(focus)

    createtextrange createrange区别: 对象或元素不同,虽然都是返回TextRange.例如:     var r=document.body.createTextRange() ...

  7. 网络加速手段之一,JS文件资源合并下载

    有过ftp下载文件经验的人都有体验,单独下载一个100M的文件比分开下载100个1M的文件速度快很多,这是因为下载需要解析域名,建立连接等额外开销的时间,因此下载100个文件就要做100次这种额外的开 ...

  8. centos7虚拟机无法上网的解决办法

    今天在VMware虚拟机中经过千辛万苦终于安装好了centos7..正兴致勃勃的例行yum update 却发现centos系统貌似默认网卡没配置好,反馈无法联网.经过一番研究,终于让centos连上 ...

  9. Cocos2d-android (05) 渐变动画(颜色,淡入淡出。。。)

    淡入淡出.颜色渐变及动作重复执行 import org.cocos2d.actions.base.CCRepeatForever; import org.cocos2d.actions.interva ...

  10. servicestack操作redis

    tatic void Main(string[] args) { );//redis服务IP和端口 #region =insert= var storeMembers = new List<st ...