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

类似于黑白棋盘,有的格子是可以不走的,有的格子是不能不走的,对于m或n中有一个奇数的情况,

所有的数都可以走到,当m和n都是偶数的时候,则需要分情况讨论,两行缩成一行走,

从而走遍可以走的数。m=1且n=1的时候需要特判

 #include<stdio.h>
 #include<cstring>
 ;
 int main(){
     int n, m;
     int sum;
     int maze[MAXN][MAXN];
 //    freopen("e.txt","r",stdin);
     while(~scanf("%d%d",&n,&m)){
         sum = ;
         memset(maze,,sizeof(maze));
         ; i < n; ++i){
             ; j < m; ++j){
                 scanf("%d",&maze[i][j]);
                 sum += maze[i][j];
             }
         }
          && m == ){
             printf("%d\n",sum);
             printf("R\n");
             continue;
         }
          ==  ){
             printf("%d\n",sum);
             ; i < n; ++i){
                 ; j < m; ++j){
                      ){
                         printf("D");
                         continue;
                     }
                      == )
                         printf("R");
                     else
                         printf("L");
                 }
                 )
                     printf("D");
             }
             printf("\n");
             continue;
         }
          ==  ){
             printf("%d\n",sum);
             ; i < m; ++i){
                 ; j < n; ++j){
                      == )
                         printf("D");
                     else
                         printf("U");
                 }
                 )
                     printf("R");
             }
             printf("\n");
             continue;
         }
         else{
             ;
             int pi, pj;
             ; i < n; ++i){
                 ; j < m; ++j){
                      ==  && (maze[i][j] < _min)){
                         _min = maze[i][j];
                         pi = i;
                         pj = j;
                     }
                 }
             }
 //            找到最小值
             printf("%d\n",sum-_min);
              ==  ){
                 ; i < pi-; ++i ){
                     ; j < m-; ++j){
                          == )
                             printf("R");
                         else
                             printf("L");
                     }
                     )
                         printf("D");
                 }
             }
 //            如果是奇数行出现,前pi-2行按规律走
             else{
                 ; i < pi; ++i ){
                     ; j < m-; ++j){
                          == )
                             printf("R");
                         else
                             printf("L");
                     }
                     )
                         printf("D");
                 }
             }
 //            如果是偶数行出现,前pi-1行按规律走
             ; i < pj; ++i){
                  == )
                     printf("D");
                 else
                     printf("U");
                 printf("R");
             }
              )
                 printf("R");
             ; i < m; ++i){
                  == )
                     printf("D");
                 else
                     printf("U");
                 )
                     printf("R");
             }
              ==  && pi +  == n) && !( pi %  ==  && pi +  == n ))
                 printf("D");
 //                两行变一行
              ==  ){
                 ; i < n; ++i ){
                     ; j < m-; ++j){
                          == )
                             printf("R");
                         else
                             printf("L");
                     }
                     )
                         printf("D");
                 }
             }
             else{
                 ; i < n; ++i ){
                     ; j < m; ++j){
                          == )
                             printf("R");
                         else
                             printf("L");

                     }
                     )
                         printf("D");
                 }
             }
         }
         printf("\n");
     }
 }

hdoj 5402 Travelling Salesman Problem的更多相关文章

  1. HDOJ 5402 Travelling Salesman Problem 模拟

    行数或列数为奇数就能够所有走完. 行数和列数都是偶数,能够选择空出一个(x+y)为奇数的点. 假设要空出一个(x+y)为偶数的点,则必须空出其它(x+y)为奇数的点 Travelling Salesm ...

  2. 构造 - HDU 5402 Travelling Salesman Problem

    Travelling Salesman Problem Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=5402 Mean: 现有一 ...

  3. HDU 5402 Travelling Salesman Problem (构造)(好题)

    大致题意:n*m的非负数矩阵,从(1,1) 仅仅能向四面走,一直走到(n,m)为终点.路径的权就是数的和.输出一条权值最大的路径方案 思路:因为这是非负数,要是有负数就是神题了,要是n,m中有一个是奇 ...

  4. HDU 5402 Travelling Salesman Problem (模拟 有规律)(左上角到右下角路径权值最大,输出路径)

    Travelling Salesman Problem Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (J ...

  5. HDU 5402 Travelling Salesman Problem(棋盘染色 构造 多校啊)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5402 Problem Description Teacher Mai is in a maze wit ...

  6. hdu 5402 Travelling Salesman Problem(大模拟)

    Problem Description Teacher Mai ,) to the bottom right corner (n,m). He can choose one direction and ...

  7. HDU 5402 Travelling Salesman Problem(多校9 模拟)

    题目链接:pid=5402">http://acm.hdu.edu.cn/showproblem.php?pid=5402 题意:给出一个n×m的矩阵,位置(i.j)有一个非负权值. ...

  8. HDU 5402 : Travelling Salesman Problem

    题目大意:n*m的格子,从左上角走到右下角,每个格子只能走一遍,每个格子上有一个非负数,要让途径的数字和最大,最后要输出路径 思路:显然茹果n,m有一个是奇数的话所有格子的数字都能被我吃到,如果都是偶 ...

  9. hdu 5402 Travelling Salesman Problem (技巧,未写完)

    题意:给一个n*m的矩阵,每个格子中有一个数字,每个格子仅可以走一次,问从(1,1)走到(n,m) 的路径点权之和. 思路: 想了挺久,就是有个问题不能短时间证明,所以不敢下手. 显然只要n和m其中一 ...

随机推荐

  1. shell动态解析sql的binlog

    #!/usr/bin #设置数据库连接 conn='mysql -hhost -Pport -uusername -ppassword' #获取最新的binlog文件 logfile=$($conn ...

  2. 使用了BeanUtils的简单操作

    直接获取对象的某个值et.createCell(BeanUtils.getProperty(o, eh.getFieldName())); 简单为对象某个字段赋值c.setCellValue(Bean ...

  3. PHP学习笔记03——函数

    <!DOCTYPE unspecified PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www. ...

  4. CodeIgniter 3之Session类库(3)(转)

    本文主要讲CI2和CI3关于Session类库的区别.我们知道CI2的Session类使用了cookie来传递session数据.使用 cookie保存会话的好处在于可以节省服务器资源,但坏处也是显而 ...

  5. hibernate中使用fetch来决策性能方案

    什么时候用子查询,或者连接查询 一般多个数据的对应用子查询,单一行的数据用连接 (若要查询每个学生分别学了什么课程 ,若要fetch=join.fetch=select) 则是这种情况 Hiberna ...

  6. (六) 6.1 Neurons Networks Representation

    面对复杂的非线性可分的样本是,使用浅层分类器如Logistic等需要对样本进行复杂的映射,使得样本在映射后的空间是线性可分的,但在原始空间,分类边界可能是复杂的曲线.比如下图的样本只是在2维情形下的示 ...

  7. uva 11991

    STL 使用,,由于数据范围没有 超越极限数据  依旧可以用 vector 搞定: #include<iostream> #include<stdio.h> #include& ...

  8. 动态加载 移除js file

    动态加载.移除.替换js/css文件 stylesheetjavascriptcssfunctionnull <script language="javascript"> ...

  9. Java核心技术II读书笔记(二)

    ch2 XML 有两种XML文档结构,DTD和Schema,用解释文档构成规则,这些规则指定了每个元素俺的合法子元素和属性. DTD DTD有多种提供方式,可以像下面这样加到XML中: <?xm ...

  10. 【转】如何调整CHM文件中的字体!非常有爱!

    原文网址:http://www.cnblogs.com/lijh_ray/archive/2011/01/25/1944668.html 如果html中字体大小是用像素px来定义,那么在IE中无法调整 ...