牛客寒假算法基础集训营4_B-Applese 走方格(构造)

news/2024/7/2 1:22:54 标签: 构造, 模拟

题目链接:https://ac.nowcoder.com/acm/contest/330/B
题目描述

精通程序设计的 Applese 又写了一个游戏。在这个游戏中,它位于一个 n 行 m 列的方阵中的左上角(坐标为(0, 0),行的序号为0∼n−10∼n−1,列的序号为0∼m−10∼m−1)。现在它想不重复地走过所有格子(除了起点),最后回到左上角的一个方案。每次只能往上下左右其中一个方向走一格。

输入描述:

仅一行两个整数 n 和 m,表示方阵的大小。保证大于1×11×1。

输出描述:

如果存在方案,则输出一行操作,包含"L"、"R"、"U"、"D",分别表示左、右、上、下。如果有多种方案,输出任意一种即可。
如果没有方案,则在一行中输出"-1"。

思路:n==1&&m==2和n==2&&m==1时有路,除此之外n==1||m==1则没路,n、m同时为奇数时没路,其他情况有路,通过n、m的奇偶构造路线。

#include <bits/stdc++.h>
using namespace std;

int main() 
{
	int n,m;
	cin>>n>>m;
	int nn=n%2;
	int mm=m%2;
	if(n==1&&m==2){
		puts("RL");return 0;
	}
	if(n==2&&m==1){
		puts("DU");return 0;
	}
	if((nn&&mm)||n==1||m==1)//两边都是奇数 
	{
		puts("-1");
		return 0;
	}
	if(nn)//n是奇数 
	{
		cout<<"D";
		int t=0;
		while(1)
		{
			for(int i=0;i<=n-3;i++) cout<<"D";
			cout<<"R";t++;if(m-1<=t) break;
			for(int i=0;i<=n-3;i++) cout<<"U";
			cout<<"R";t++;if(m-1<=t) break;
		} 
		for(int i=0;i<=n-2;i++) cout<<"U";
		for(int i=0;i<=m-2;i++) cout<<"L";
	}
	else //m是奇数或都是偶数 
	{
		cout<<"R";
		int t=0;
		while(1)
		{
			for(int i=0;i<=m-3;i++) cout<<"R";
			cout<<"D";t++;if(n-1<=t) break;
			for(int i=0;i<=m-3;i++) cout<<"L";
			cout<<"D";t++;if(n-1<=t) break;
		} 
		for(int i=0;i<=m-2;i++) cout<<"L";
		for(int i=0;i<=n-2;i++) cout<<"U";
	}
}



 


http://www.niftyadmin.cn/n/1154454.html

相关文章

关于datatables自适应以及自定义列宽度的总结

table-layout:fixed;可以自定义列的宽度 <div id"bizhi" style"width:100%;height: 85%;overflow-x: auto;"> <table id"data_table" class"" style"width:100%;height: 100%;table-layout:fix…

Google Chrome默认字体设置(Win)

宋体新宋体仿宋字体.rar 下载地址&#xff1a;http://pan.baidu.com/s/1nt0l8FZ 或者&#xff1a;http://yunpan.cn/Qzv3UTTngbsID

小技巧(商上取整、字母转数字、统计字符串每个字母数量)

1.商上取整 int m,n,ans; ans(mn-1)/n; 例如&#xff1a; 被除数26&#xff0c;除数5&#xff0c;商上取整得6&#xff0c;即&#xff08;265-1&#xff09;/56。 被除数30&#xff0c;除数5&#xff0c;商上取整得6&#xff0c;即&#xff08;305-1&#xff09;/56(int是下取…

数据库数据字典视图

除了在“查看参数设置”中列出的视图之外&#xff0c;您还可以使用以下视图查看有关数据库内容和结构的信息&#xff1a; ViewDescriptionDATABASE_PROPERTIES显示永久数据库属性GLOBAL_NAME显示全局数据库名称V$DATABASE包含来自控制文件的数据库信息转载于:https://www.cnblo…

作为码农,我们为什么要写作

2019独角兽企业重金招聘Python工程师标准>>> 在程序员这个行业&#xff0c;坚持做技术写作的人一直比较少。我和身边的朋友沟通后&#xff0c;发现他们除了借口没有时间外&#xff0c;大多没有意识到写作带来的收益。在他们看来&#xff0c;将自己学到的知识简单记录…

求n!在m进制下末尾0的个数

参考&#xff1a; CF#538 C - Trailing Loves (or Loeufs?) /// 分解质因数 n的阶乘在m进制下末尾有多少零 简单的讲解&#xff1a; 求n&#xff01;在10进制下末尾0的个数&#xff0c;由于2*510&#xff0c;&#xff08;2,5是质数&#xff09;所以就是求n&#xff01;里有…

Servlet常用接口及类之间的关系

贴上Servlet的常用接口及类&#xff0c;相互关系&#xff1a; Servlet API中有4个Java包&#xff0c;包括&#xff1a; javax.servlet。包含定义Servlet与Servlet容器之间契约的类和接口。 javax.servlet.http。包含HTTP Servlet与Servlet容器直接契约的类和接口。 javax.servl…

CodeForces_Flood Fill(区间dp)

题目链接&#xff1a;Codeforces Round #538 (Div. 2)_D. Flood Fill 题目描述&#xff1a;一排不同颜色的方块&#xff0c;每次可以把连续的相同颜色方块变成相邻的颜色&#xff0c;要把全部方块变成一种颜色最少要几步&#xff1f;如&#xff1a; [5,2,2,1][5,5,5,1][1,1,1…