https://codeforces.com/contest/1301/problem/D
문제의 의미 부여 N * m (1 <= N, m <= 500) 격자 요건은 K (1E9) 단계는, Q가 달성 될 수 있으며, 상기 공정 출력 (<3000) 규정 될 수있다 : 가장 동일한 방향으로 격자 당신은 한 단계를 갈 수 있습니다.
솔루션 :도 표시 오일러, 4 * N * M-2 * N-2 * m 단계로 올라갈.
가능한 단계 한 적은 경우, 각 단계는 직선을 도보로, 예를 들어, 가능한 한 많이 걸을 수 있어야합니다.
#INCLUDE <비트 / stdc ++ H.> 의 typedef 긴 긴 LL; #DEFINE INT LL #DEFINE 개조 1,000,000,007 #DEFINE GCD __gcd #DEFINE 담당자는 (ⅰ, j는, N)에 대한 (INT 난 J를 =; I <= N; I ++) 레드 #DEFINE (I, N, j)는 대 (INT I = N; I> J =; 난 -) #DEFINE ME (X, Y)가 memset (X, Y는 sizeof (X)) // LL LCM (LL A, LL의 b) {A * B / GCD (반환 A, B)} // LL quickpow (LL의 B, A LL) {LL ANS = 1, 반면 (b) {(b가 & 1) ANS = ANS는 *는 %를 개조하는 경우, (B) >> = 1, A가를 = * %의 개조} 리턴 ANS} 와; // INT euler1 INT (X) {INT의 ANS는 = X의 경우 (X % I == 0) {ANS (INT 내가 = 2; I ++; 나는 <= X *) - = ANS / 전, 동안 (X % I == 0) X / = 1} 경우 (x> 1) = ans- ANS / X] 복귀 ANS} // CONST INT 1E7 + N = 9; INT 힘 [N], 프라임 [N], 피 [N] INT euler2 (INT N) {ME (힘, TRUE); INT LEN = 1; 렙 (I, 2, N) {경우 (힘 [I] ) {프라임 [LEN ++] = 1, 피 [I] = I - 1}에 대한 (INT J = 1; J <LEN && 프라임 [J] * I <= N; J ++) {힘 [내가 * 프라임 [J] = 0 (I % 프라임 [J] == 0) {(φ)는 [I 프라임 [J를 *] = 피 [I] * 프라임 [J] 바꿈} 만약 그렇지 {피가 [I *를 주요한 [J] = 피 [I]는 * 피 [프라임 [J]를];}}} 리턴 LEN} #DEFINE INF 0x3f3f3f3f #DEFINE PI의 ACOS (-1) #DEFINE PII 쌍 <INT는 INT> #DEFINE 인터넷 제 #DEFINE 번째 SE는 #을 LSON 리터 중간 루트를 정의 << 1 #DEFINE의 rson 미드 + 1, R, 루트 << 1 | 1 #DEFINE PB와 push_back #DEFINE MP make_pair #DEFINE CIN (X)는 scanf ( "%의 LLD ', X); 네임 스페이스를 사용하여 표준; CONST INT maxn = 1e3 + (9); 벡터 <쌍 <CHAR, INT>> MA; 벡터 < 보이드 인서트 (숯 C, INT m) { 경우 (m> 0) ma.pb (MP (c, m)); } 공극 해결 () { INT의 N, M, K; CIN N >> >> >> K m; (4 * N * M-2 * 2 * N-m <k)는 {만약 COUT << "NO"<< ENDL; 반환; } COUT << "YES"<< ENDL; ( 'R', m-1)를 삽입; 렙 (I, 1, m-1) { ( 'D'를, N-1)를 삽입; ( 'U'을, N-1)를 삽입; ( 'L'1)를 삽입; } 인서트 ( 'D', N-1); 렙 (I, 1, N-1) { 인서트 ( 'R', m-1); ( 'L', m-1)를 삽입; ( 'U', 1)를 삽입; } INT ANS = 0; (이것은 자동 : mA) 대 { 경우 (K <= 0) { } 다른 { ANS ++; v.pb (MP (it.fi, K> it.se it.se : K)); K - = it.se; } } COUT << ANS << ENDL; 대 (자동 그것을 : V) { COUT << it.se << ''<< it.fi << ENDL; } } IOS :: sync_with_stdio (거짓); cin.tie (0); cout.tie (0); // INT t; // CIN (t); // (t는 -) {동안 해결 (); //} }
4 하자 나를 -