题目链接: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. UVA 11354 Bond 邦德 (RMQ,最小瓶颈MST)

    题意: n个城市,m条路,每条路有个危险值,要使得从s走到t的危险值最小.回答q个询问,每个询问有s和t,要求输出从s到t最小的危险值.(5万个点,10万条边) 思路: 其实要求的是任意点对之间的最小 ...

  2. 一个基于PDO的数据库操作类(新) 一个PDO事务实例

    <?php /* * 作者:胡睿 * 日期:2011/03/19 * 电邮:hooray0905@foxmail.com * * 20110319 * 常用数据库操作,如:增删改查,获取单条记录 ...

  3. MySQL与Oracle 差异比较之六触发器

    触发器 编号 类别 ORACLE MYSQL 注释 1 创建触发器语句不同 create or replace trigger TG_ES_FAC_UNIT  before insert or upd ...

  4. Nginx 反向代理、负载均衡、页面缓存、URL重写、读写分离及简单双机热备详解

    大纲 一.前言 二.环境准备 三.安装与配置Nginx  (windows下nginx安装.配置与使用) 四.Nginx之反向代理 五.Nginx之负载均衡  (负载均衡算法:nginx负载算法 up ...

  5. 细雨学习笔记:JMeter 的主要测试组件总结

    1. 测试计划是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器. 2. 线程组代表一定数量的并发用户,它可以用来模拟并发用户发送请求.实际的请求内容在Sampler中定义, ...

  6. a different object with the same identifier value was already associated with **(ssh异常转)

      Hibernate:a different object with the same identifier value was already associated with ...异常解决 今天 ...

  7. CMDB反思4

    CMDB模型设计2 http://blog.vsharing.com/xqscool/A1275233.html 估计大家看到破子的这两篇都有点晕哈,我也有点晕. 两篇对比来看.   第1处,属性部分 ...

  8. 【LeetCode】232 & 225 - Implement Queue using Stacks & Implement Stack using Queues

    232 - Implement Queue using Stacks Implement the following operations of a queue using stacks. push( ...

  9. String - 兴趣解读

    个优点: . 以下代码的HashCode是否相同,它们是否是同个对象: . 以下代码的HashCode是否相同,他们是否是同个对象:        . 以下代码的HashCode是否相同,他们是否是同 ...

  10. 如何注册AWS Global账号

    去年底AWS宣布落地中国以来,可能很多童鞋都在热切地等待试用AWS中国的服务.但是AWS中国目前还在犹抱琵琶半遮面,没有完全向大家开放.不过,大家也不必干等待.要是真感兴趣的话可以自己或者让公司先注册 ...