Codeforces 라운드 # 615 (사업부. 3). B - 수집 패키지

질문 표면 : ​​HTTPS : //codeforces.com/contest/1294/problem/B

 

효과에 따라 :

(0,0)에서 로봇, 그는 할 수있는 전용 'U'또는 오른쪽 'R'걸어

어떤 시점에서, 각각 소포의 많은 좌표계

로봇이 모든 소포 수집을지나 갈 필요

Q. 그것은 수행 할 수 있습니다

그렇다면, 출력 모드로 이동하는 경우, 동일한 이동의 출력 전적으로 작은 용액

 

문제 해결 아이디어 :

다음 소포 바로 현재의 로봇 위치 / 이상 / 우측에 있어야하기 때문에 쌍 또는 배열 구조체, X 및 Y는, 임의의 우선 순위

그렇지 않으면 직접 출사 NO이 가능한 이동의 존재를 나타낸다

때 출력 이동주의 수 첫번째 'R'의 사용에 'R'로 인해 큰 'R'보다 U '사전 식 순서 (즉, 이전에 그리고 우측)

아날로그 따르면

1  / * 
2  필기 바이 StelaYuri
 3  에서 2020년 1월 22일
 4  * / 
5 #INCLUDE <비트 / stdc ++ H.>
 6  사용  공간이 수 std;
7 의 typedef 쌍 < INT , INT > P;
8 P PNT의 [ 1050 ]; // 使用쌍默认先再X, Y 
9  문자열 ANS;
(10)  보이드 추가 ( int로 최대 INT의 오른쪽) {
 11      INT 난;
(12)      에 대한이 (ⅰ = 0 ; i가 <오른쪽 내가에게 ++ )
 13         ANS + = " R " ;
(14)      에 대한이 (전 = 0 ; I <가 나는 ++ )
 15          ANS + = " U " ;
16 } // 先R再U 
17  공극 해결 () {
 18      INT의 N, I;
19      ANS = "" ;
20      CIN >> N;
21      PNT [ 0 ] = P ( 0 , 0 );
(22)      에 대한이 (전 = 1 ; I <= N; I ++ )
 23          CIN >> PNT [I] 좁은 방 >>PNT은 [I]는 .second;
 24      정렬 (PNT + 1. , PNT + 1. + N-),
 25       (I는 = 1. ; I <= N-; I ++ ) {
 26는          IF (PNT [I] 좁은 방> PNT [I- . 1 ] && PNT은 [I] .second <PNT [I-를 좁은 방 1이다. ] .second) { // 다음 포인트는 현재 시점보다 현재 위치의 X, Y보다 적은 경우의 명백하게 부재 
27              COUT << " 에 \ N- " ;
 28              ;
 29          }
 30          추가 (PNT [I] .second-PNT [I- 1. ] .second, PNT [I] 좁은 방-PNT [I- 1. ] 좁은 방)
 31이다      }
 (32)     COUT << " YES \ n " << ANS << ' \ n ' ;
33  }
 34  INT의 주 () {
 35      IOS :: sync_with_stdio ( 0 );
36      cin.tie ( 0 ) cout.tie ( 0 );
37      INT T; CIN >> T;
38      동안 (T-- )
 39          ) (해결;
40      
41      복귀  0 ;
42 }

추천

출처www.cnblogs.com/stelayuri/p/12230006.html