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 ...
随机推荐
- VS2010调试技巧
最近合作开发,代码已经完成了,但是一调试,错误一大堆,由于是合作开发,不确定是哪层的错误,得一步步得走,很是费时费力,平时调试的技巧用的不多,现在集中调试,结果有些手忙脚乱,效率也很低,所以在网上找了 ...
- Bootstrap popover弹出框
popover被挤压.遮挡的问题: 弹出框显示的时候如果贴近一个列的边沿,就会很窄或被遮挡,解决起来很简单,只需在初始化的时候添加一个container属性就可以了: $(function (){ $ ...
- 笔记本wifi热点设置好后,手机连上但不能上网问题
这个问题我遇到过,我的原因是因为电脑上装有安全防护软件360的原因 解决方法是:打开360-->找到功能大全中的流量防火墙-->打开局域网防护-->关闭局域网隐身功能,立刻解决了这个 ...
- Jmeter-Maven-Plugin高级应用:Configuring the jvm that the jmeter process runs in
Configuring the jvm that the jmeter process runs in The JMeter Maven plugin will run the JMeter proc ...
- ZH奶酪:putty远程登录Linux服务器非常慢
11.pytty远程登录Linux服务器非常慢 http://www.it165.net/os/html/201209/3425.html 12.启动SSHD服务报错 http://blog.chin ...
- Android 的一些提示框
1.在测试时,如何实现一个提示 可以使用 Toast.makeText(this, "这是一个提示", Toast.LENGTH_SHORT).show(); //从资源文件str ...
- webstorm激活+汉化教程
1.安装教程+激活 输入的激活网址: http://idea.imsxm.com/ 2.汉化教程 软件适用于:webstorm2017.2以及以上,如有需要可直接加本人QQ 1940694428.
- CentOS7 设置防火墙端口
[root@localhost wzh]# firewall-cmd --state running [root@localhost wzh]# firewall-cmd --zone=public ...
- acm2024
/** * C语言合法标识符 */ import java.util.*; public class acm2024 { public static void main(String[] args ...
- Junit和Spring
@ContextConfiguration 用来指定加载的Spring配置文件的位置,会加载默认配置文件 例如下例会加载:classpath:/com/example/MyTest-context.x ...