codeforces-1327C-Game with Chips
传送门:https://codeforces.com/contest/1327/problem/C
题意:有一个n*m的电路板,给你k个当前点和k个目标点,每次可以进行上下左右的移动(每次移动所有的当前点都动)(如果芯片位于板壁的旁边,并且Petya选择的动作将其移向壁,则芯片将保持在其当前位置),使得所有的当前点都至少经过目标点一次,移动范围不超过2*n*m,应该怎么走
每次移动所有点都跟着动是不是很懵逼?还要经过给出的目标点?看移动范围呀,2*n*m呀,当前点和目标点屁用没有,把所有点挤到一个角,蛇形跑一边就完了,移动次数n*m+n+m-3,散了吧散了吧,这题太骚了
1 #include<bits/stdc++.h> 2 using namespace std; 3 #define ll long long 4 const int maxn=1e6+10; 5 const int mod=1e9+7; 6 const int inf=0x3f3f3f3f; 7 int mp[209][209]; 8 int main() 9 { 10 int t,n,m,k,x,y; 11 12 scanf("%d%d%d",&n,&m,&k); 13 for(int i=1;i<=2*k;i++) 14 { 15 scanf("%d%d",&x,&y); 16 } 17 printf("%d ",n*m+n+m-3); 18 for(int i=1;i<n;i++) printf("U"); 19 for(int i=1;i<m;i++) printf("L"); 20 for(int i=1;i<=n;i++) 21 { 22 if(i%2) 23 { 24 for(int j=1;j<m;j++) printf("R"); 25 } 26 else 27 { 28 for(int j=1;j<m;j++) printf("L"); 29 } 30 if(i!=n) 31 printf("D"); 32 } 33 printf(" "); 34 return 0; 35 }