N = C (2, N) + K (构造) (a 1,337 문자열 인쇄) 교육 라운드 Codeforces 70 (사업부 정격. 2)

주제 링크 : https://codeforc.es/contest/1202/problem/D

질문의 의미 :

그래서 137 713 713 (단 함유 1,3,7) .....하면 문자열 있도록에게 수 (n)를 (<= 1E9)을 수득 구성된 다른 서브 - 시퀀스들 1337의 수는 N-이고 , 캐릭터로부터 구성하는 것이 될 수 없다 길이 (<= 1E5) .

아이디어 :

구성 문제의 유형은 I하려고 첫 번째 방법을 수정해야 (2) C + C (2, b) + C (C 2) + ... = N 형태하지 알았다. 나중에 여전히 나는 다른 사람의 코드를 읽을

C (2, m) + K 조성물 n의 형태 이후, 두 n 개의 * (N-1)(N-1) * (N -2) 수는 (차이보다 크지 2 * 31,622 ) 때문에 루트 1E9는 이다 31622 ;

따라서 전체 길이보다 크지 2 * 31622 + (최대 길이 인 K) 31 622 (최대 길이 m 인) 정확히 94,868 <1E5.

그래서 응답은  133 + 7 (K 번째의) + 3333 (두 M-2) ... (7)

  1  #DEFINE IOS가 ios_base :: sync_with_stdio (0); cin.tie (0);
  2 #INCLUDE <cstdio> // sprintf와 islower와 isupper 
  3 #INCLUDE <cstdlib> // malloc에 출사 strcat와의 itoa 시스템 ( "CLS") 
  4 #INCLUDE <iostream> // 
  5 #INCLUDE <fstream>
   6 #INCLUDE <비트 세트>
   7  // #INCLUDE <지도>
   8  // #INCLUDE <unordered_map도>   https://codeforc.es/contest/1202/problem/D 
  9 #INCLUDE <벡터>
 10 #INCLUDE <적층>
 11 #INCLUDE < 설정 >
#INCLUDE < 문자열 .H> // 않는 strstr SUBSTR 
13 #INCLUDE < 문자열 >
 14 #INCLUDE <time.h> // 부터 srand (((서명) 시간 (NULL))); 시드 랜드 N = () 10 % - 0 ~ 9; 
15 #INCLUDE <cmath>
 16 #INCLUDE <양단>
 17 #INCLUDE <큐> // priority_queue <INT 벡터 <INT> 큰 <INT>> Q; // 이하 
18 #INCLUDE <벡터> // emplace_back
 19  // #INCLUDE <math.h>
 20  // #INCLUDE <WINDOWS.H> // (a하는 LEN +) 역방향 // ~! ~! 바닥
21 #INCLUDE <알고리즘> //이 정렬 + 고유 : SZ = 고유 (B + 1, B + N + 1) - (b + 1) + nth_element (제 1, 제 n이 마지막 비교) 
22  이용한  스페이스 성병; // next_permutation (A + 1, A + N + 1); // prev_permutation 
23  #DEFINE (a, b는, c)에 대해 (;은 <= C ++ A A = B를하는 int 레지스터) FO
 24  #DEFINE의 FR을 (A, B, C)에 대해 (A = B를하는 int 레지스터; A> = C를 - a)
 25  #DEFINE MEM (a, b)가 memset (A, B를 sizeof (a))
 26  #DEFINE PR의 printf
 27  #DEFINE SC는 scanf
 28  #DEFINE LS의 RT 1 <<
 29  #DEFINE 중계국 RT << 1 | 1
 30 보이드 swapp ( INT & A, INTb);
31   fabss ( 더블 a);
32  INT의 맥스 ( int로 하는 INT의 b);
33  INT 미네소타 ( INT A, INT의 b);
34  INT Del_bit_1 ( INT의 N);
35  INT lowbit ( INT N);
36  의 INT abss ( INT a);
37  // CONST 긴 길이 = INF (1LL << 60); 
38  CONST  이중 E =2.718281828 ;
39  CONST  이중 PI ACOS = (- 1.0 );
40  CONST의  INT의 INF = ( 1 << 29 );
41  CONST  이중 ESP 1e- = 9 ;
42  CONST  INT 개조 = ( INT ) + 1E9 (7) ;
43  CONST의  INT의 N = ( INT ) + 1E6 (10) ;
44  
45  INT ) (주
 46  {
 47      INT의 T;
48      SC ( " % d의" & T)
 (49)      동안 (T-- )
 50      {
 51          INT N;
 52          SC ( " %의 D ' , N); // C (2, N) + K, 
53          INT K = 0 , m = 0 ,
 (54)          에 대해 ( int로 , I> = 1은 N = 1 -; I)
 55          {
 56              K = N- I]
 (57)              의 INT J = ( INT ) SQRT ( 2 * I)
 58               온도 = j 개의 * (j + 1 );
(59)              의 경우 ( 2 * I == 온도)
 60              {
 61                  , M = J + 1 ;
(62)                  휴식 ;
63              }
 64          }
 65          PR ( " 133 " );
66          FO (I, 1 , K)
 (67)              PR ( " 7 " );
68          FO (I, 1 , M- 2 )
 (69)              PR ( " 3" );
 70          PR ( " 7 " );
 71          COUT << ENDL;
 72      }
 73      반환  0 ,
 74  }
 75  
76  / * ********************* ************************************************** ************* * / 
77  
78  INT의 맥스는 ( int로INT의 b)
 79  {
 80      리턴 A> B? A : B;
 81  }
 82  
83  공극 swapp ( INT & AINTb)
 84  {
 85      ^ = ^ B = A ^ = B;
86  }
 87  
88  INT의 lowbit ( INT의 N)
 89  {
 90      반환 N 및 (- N);
91  }
 92  
93  INT Del_bit_1 ( INT의 N)
 94  {
 95      반환 N 및 N- ( 1 );
96  }
 97  
98  INT의 abss ( INT a)
 99  {
 100      리턴 A> 0? A : - a 및
101  }
 102  
103   fabss ( 더블 A)
 (104)  {
 105      리턴 A> 0 A : - a 및
106  }
 107  
108  INT의 미네소타 ( int로 하는 INT의 b)
 (109)  {
 110       은 <B? A : B;
111 }

 

추천

출처www.cnblogs.com/--HPY-7m/p/11333199.html