题目链接:传送门
思路:主要是n=1,m=2或者n=2,m=1时,不是-1。
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int main(void) { int n,m,i,j; while(~scanf("%d%d",&n,&m)){ if(n==1){ if(m==2) printf("RL"); else printf("-1"); } else if(m==1){ if(n==2) printf("DU"); else printf("-1"); } else if(n%2==1&&m%2==1){ printf("-1"); } else if(m%2==0){ for(i=0;i<m-1;i++) printf("R");printf("D"); for(i=m;i>=1;i--){ if(i%2==0){ for(j=1;j<=n-2;j++) printf("D");printf("L"); } else{ for(j=1;j<=n-2;j++) printf("U"); if(i==1) printf("U"); else printf("L"); } } } else if(n%2==0){ for(i=0;i<n-1;i++) printf("D");printf("R"); for(i=n;i>=1;i--){ if(i%2==0){ for(j=1;j<=m-2;j++) printf("R");printf("U"); } else{ for(j=1;j<=m-2;j++) printf("L"); if(i==1) printf("L"); else printf("U"); } } } printf("\n"); } return 0; }