HDU 5402(Travelling Salesman Problem-构造矩阵对角最长不相交路径)
Travelling Salesman Problem
Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 898 Accepted Submission(s): 327
Special Judge
n
rows and m
columns. There is a non-negative number in each cell. Teacher Mai wants to walk from the top left corner
(1,1)
to the bottom right corner (n,m)
He can choose one direction and walk to this adjacent cell. However, he can't go out of the maze, and he can't visit a cell more than once.
Teacher Mai wants to maximize the sum of numbers in his path. And you need to print this path.
For each test case, the first line contains two numbers
n,m(1≤n,m≤100,n∗m≥2)
In following n
lines, each line contains m
numbers. The j
number in the i
line means the number in the cell (i,j)
Every number in the cell is not more than 10
In the next line you should print a string consisting of "L","R","U" and "D", which represents the path you find. If you are in the cell
(x,y)
"L" means you walk to cell (x,y−1)
"R" means you walk to cell (x,y+1)
"U" means you walk to cell (x−1,y)
"D" means you walk to cell (x+1,y)
3 3
2 3 3
3 3 3
3 3 2
25
RRDLLDRR
pid=5421" target="_blank">5421
pid=5420" target="_blank">5420
5419 5418pid=5417" target="_blank">5417
当n,m有一个奇数时,‘S形’可全取。
否则至少要少取一个,
假设少取(mx,my) ,当mx+my为偶数时,必定有一个与(mx,my)相邻的不能取
否则必能全取剩下的。(‘S形’+特判2行‘长城形’)
#include<bits/stdc++.h>
using namespace std;
#define For(i,n) for(int i=1;i<=n;i++)
#define Fork(i,k,n) for(int i=k;i<=n;i++)
#define Rep(i,n) for(int i=0;i<n;i++)
#define ForD(i,n) for(int i=n;i;i--)
#define RepD(i,n) for(int i=n;i>=0;i--)
#define Forp(x) for(int p=pre[x];p;p=next[p])
#define Forpiter(x) for(int &p=iter[x];p;p=next[p])
#define Lson (x<<1)
#define Rson ((x<<1)+1)
#define MEM(a) memset(a,0,sizeof(a));
#define MEMI(a) memset(a,127,sizeof(a));
#define MEMi(a) memset(a,128,sizeof(a));
#define INF (2139062143)
#define F (100000007)
#define MAXN (100+10)
typedef long long ll;
ll mul(ll a,ll b){return (a*b)%F;}
ll add(ll a,ll b){return (a+b)%F;}
ll sub(ll a,ll b){return (a-b+llabs(a-b)/F*F+F)%F;}
void upd(ll &a,ll b){a=(a%F+b%F)%F;}
int n,m;
ll a[MAXN][MAXN];
int main()
{
// freopen("Travelling.in","r",stdin); while(cin>>n>>m) {
ll sum=0,mi=INF;int mx,my;
For(i,n) For(j,m) {
scanf("%lld",&a[i][j]),sum+=a[i][j];
if (mi>a[i][j]&&(i+j)%2==1)
mi=min(mi,a[i][j]),mx=i,my=j;
}
if (n%2==0&&m%2==0)
{
cout<<sum-mi<<endl; if (mx%2==1) {
For(i,mx-1)
{
if (i&1) {For(j,m-1) putchar('R');}
else {For(j,m-1) putchar('L'); }
if (i<n) putchar('D');
} int tx=mx,ty=1;
int p=0;
For(j,m)
{
if (my==j) {if (j<m) putchar('R');continue;}
if (p==0) printf("D");
else printf("U");
p^=1;
if (j<m) putchar('R');
}
Fork(i,mx+2,n)
{
putchar('D');
if ((i&1)^1) {For(j,m-1) putchar('R');}
else {For(j,m-1) putchar('L'); }
}
} if (my%2==1) {
For(i,my-1)
{
if (i&1) {For(j,n-1) putchar('D'); }
else {For(j,n-1) putchar('U'); }
if (i<m) putchar('R');
} int tx=1,ty=my;
int p=0;
For(j,n)
{
if (mx==j) {if (j<n) putchar('D');continue;}
if (p==0) printf("R");
else printf("L");
p^=1;
if (j<n) putchar('D');
} Fork(i,my+2,m)
{
putchar('R');
if ((i&1)^1) {For(j,n-1) putchar('D'); }
else {For(j,n-1) putchar('U'); }
}
} }
else {
cout<<sum<<endl;
if (n%2) {
For(i,n)
{
if (i&1) {For(j,m-1) putchar('R');}
else {For(j,m-1) putchar('L'); }
if (i<n) putchar('D');
}
} else {
For(i,m)
{
if (i&1) {For(j,n-1) putchar('D'); }
else {For(j,n-1) putchar('U'); }
if (i<m) putchar('R');
}
}
}
cout<<endl;
} return 0;
}
HDU 5402(Travelling Salesman Problem-构造矩阵对角最长不相交路径)的更多相关文章
- HDU 5402 Travelling Salesman Problem (构造)(好题)
大致题意:n*m的非负数矩阵,从(1,1) 仅仅能向四面走,一直走到(n,m)为终点.路径的权就是数的和.输出一条权值最大的路径方案 思路:因为这是非负数,要是有负数就是神题了,要是n,m中有一个是奇 ...
- 构造 - HDU 5402 Travelling Salesman Problem
Travelling Salesman Problem Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=5402 Mean: 现有一 ...
- HDU 5402 Travelling Salesman Problem (模拟 有规律)(左上角到右下角路径权值最大,输出路径)
Travelling Salesman Problem Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (J ...
- HDU 5402 Travelling Salesman Problem(棋盘染色 构造 多校啊)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5402 Problem Description Teacher Mai is in a maze wit ...
- HDU 5402 Travelling Salesman Problem(多校9 模拟)
题目链接:pid=5402">http://acm.hdu.edu.cn/showproblem.php?pid=5402 题意:给出一个n×m的矩阵,位置(i.j)有一个非负权值. ...
- hdu 5402 Travelling Salesman Problem(大模拟)
Problem Description Teacher Mai ,) to the bottom right corner (n,m). He can choose one direction and ...
- hdu 5402 Travelling Salesman Problem (技巧,未写完)
题意:给一个n*m的矩阵,每个格子中有一个数字,每个格子仅可以走一次,问从(1,1)走到(n,m) 的路径点权之和. 思路: 想了挺久,就是有个问题不能短时间证明,所以不敢下手. 显然只要n和m其中一 ...
- HDU 5402 : Travelling Salesman Problem
题目大意:n*m的格子,从左上角走到右下角,每个格子只能走一遍,每个格子上有一个非负数,要让途径的数字和最大,最后要输出路径 思路:显然茹果n,m有一个是奇数的话所有格子的数字都能被我吃到,如果都是偶 ...
- HDOJ 5402 Travelling Salesman Problem 模拟
行数或列数为奇数就能够所有走完. 行数和列数都是偶数,能够选择空出一个(x+y)为奇数的点. 假设要空出一个(x+y)为偶数的点,则必须空出其它(x+y)为奇数的点 Travelling Salesm ...
随机推荐
- Log 日志工具类 保存到文件 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- SQL Server 视图索引
在视图上创建索引的另一个好处是:查询优化器开始在查询中使用视图索引,而不是直接在 FROM 子句中命令视图.这样一来,可从索引视图检索数据而无需重新编码,由此带来的高效率也使现有查询获益.在视图上创建 ...
- 微信小程序价值思考:手机端的CS-BS迁移
从很多特点来看,小程序都非常类似于网页:主要的业务逻辑在服务端.客户端无需安装应用程序.小程序的开发采用的HTML+JS+CSS技术等等.张小龙自己对小程序的定位也大概如此:无意做小程序分发平台,只是 ...
- java list按照元素对象的指定多个字段属性进行排序
ListUtils.java---功能类 package com.enable.common.utils; import java.lang.reflect.Field;import java.tex ...
- 防盗链Nginx设置图片防盗链,设置无效的请仔细看红字
*******************************************************************切记,替换的图片地址要使用没有防盗链的网站图片,否则由于替换的图片 ...
- JavaScript 之 变量
一:作用域 说起变量第一个要说到的肯定就是作用域,正是因为不熟悉JS的 作用域,往往就会把面向对象的作用域张冠李戴,毕竟有些东西总是习惯性的这样,但是并不是每次照搬都是可以的,那么下一个问题就来了,j ...
- python中的lambda知多少!
python允许使用lambda关键字创造匿名函数,匿名函数是因为不需要以标准的方式来声明,比如说,使用def语句.(除非赋值给一个局部变量,这样的对象也不会再任何的名字空间内创建名字)然而,作为函数 ...
- 简单通俗讲解DOM
在开始之前先说一点,DOM是非常容易理解的,但是大家说的太官方,让人很是难于理解,我们就用非常简单的语言翻译一遍.加深对DOM的理解,从而对它有一个全面的认识. 什么是DOM DOM的全称是Docum ...
- 从零开始学JavaScript一(简介)
概要:JavaScript的组成. 各个组成部分的作用 . 一.JavaScript是一种专为与网页交互而设计的脚本语言,它的的组成 Javascript ECMAScript(核心) DOM ...
- 【CMS】DedeCMS Error: (PHP 5.3 and above) Please set 'request_order' ini value to include C,G and P (recommended: 'CGP') in php.ini
DedeCMS Error: (PHP 5.3 and above) Please set 'request_order' ini value to include C,G and P (recomm ...