题目链接: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. string tips

    1. .net文档中说,split 比 indexOf 消耗更多的性能.在as3中经过本人测试,这个结论一样成立.而且,字符串越长,split和indexOf的差距就越明显!!所以,能用indexOf ...

  2. IOS设计模式之二(门面模式,装饰器模式)

    本文原文请见:http://www.raywenderlich.com/46988/ios-design-patterns. 由 @krq_tiger(http://weibo.com/xmuzyq) ...

  3. linux下安装虚拟机qemu kqemu

    一,为什么要装虚拟机,为什么选择qemu 我的系统里面有3个linux系统,这些系统都是独立的,有的时候,我想一台电脑,能更真实的模拟二台,这个时候我们就可以装个虚拟机.其实如果真的很有钱的话,可能考 ...

  4. Oracle RAC OCR 与健忘症

    OCR就好比Windows的一个注册表,存储了所有与集群,RAC数据库相关的配置信息.而且是公用的配置,也就是说多个节点共享相同的配置信息.因此该配置应当存储于共享磁盘.本文主要基于Oracle 10 ...

  5. aspose.word 查找文本并加下划线

    private Run SplitRun(Run run, int position) { Run beforeRun = (Run)run.Clone(true); beforeRun.Text = ...

  6. C#的Timer

    PowerCoder 原文 C#的Timer 再C#里现在有3个Timer类: System.Windows.Forms.Timer System.Threading.Timer System.Tim ...

  7. 用标准C编写COM(一)

    cdllbufferstruct编译器微软 目录(?)[-] 简介 COM对象和虚表 GUID QueryInterfaceAddRef and Release IClassFactory对象 打包到 ...

  8. TextView------文字底部或者中间加横线

    promotionLinkText = (TextView) this .findViewById(R.id. text_promotion_link ); 中间加横线 promotionLinkTe ...

  9. 基于Web的数据推送技术(转)

    基于Web的数据推送技术 对于实时性数据显示要求比较高的系统,比如竞价,股票行情,实时聊天等,我们的解决方案有以下几种.1. HTTP请求发送模式,一般可以基于ajax的请求,比如每3秒一次访问下服务 ...

  10. C++中,申请字符串数组可用new实现

    C++中,申请字符串数组可用new实现: char ** list = new char*[MAX_NUM]; for (int i = 0; i< MAX_LOOP; i++) list[i] ...