구덩이의 수는 최소 구덩이를 찾고 더 많은 당근을 넣어

주제 링크 : https://ac.nowcoder.com/acm/contest/1014/A

제목 설명

 프레와 무지개 N 새끼 고양이,이 일을 사육, 새끼 고양이는 하이킹. 멀리 통과, 고양이가 마지막 언덕을 올라 갔다,하지만 그들은 지치고 산을 걸어 싶지 않아 (> _ <끈적 거리는 우).

설명을 입력합니다 :

프레와 무지개 그들 케이블을 앉아서하기 위해 돈을 지출했다. 케이블 카 삭도 중량 최대로드 W는 N 튼 중량되어있다 C1, C2 ... CNC_1, C_2 \ DOTS C_N C . (1) , C (2) ... C N을 . 물론, 케이블카에 고양이의 무게되지는 W. 당 초과 케이블 자동차를 임대의 각각은, 프레와 무지개 $ 100 지불해야한다, 그래서 그들은, N의 최소한이 새끼 고양이가 산 아래로 운반 얼마나 많은 달러를 지불 알고 싶어?

출력 설명 :

첫 번째 라인은 두 개의 공간으로 분리 정수, N 및 W. 포함 
다음에, 제 i + 1 행 제 i 고양이의 정수를 나타내는 정수 N 라인은 WT CiC_i C 나이 .
예 1

기입

1,996 5 
1 
2 
1994 
12 
29

수출

2 

  상당한 당근 주요 링 구덩이은 구덩이은 구덩이의 최소 수에 의해 결정되는 새끼 고양이 등반 복수 무입니다. 그리고 주요 링은 각 구덩이를 들어, 첫 번째 단계는 여러 구덩이 넣어하는보고 검색하고,
새끼 고양이 등반이 번호로 첫 번째 단계 그를 위해 구덩이를 찾기 위해 통과되고, 구덩이의 재 구축 할 필요가 없다.
그것을 치기, 따라서, 그것은 필기 시험을 제출하여 마이너스 분기 (CNT> 입술) (CNT> = 고해상도), 4ms의 약이 300ms에서 전 시간, 경우보다 훨씬 느린 경우 기록 된 것을 언급 할 가치가있다 중요한 것은
적절한 가지 치기가 더 중요하다.

다음과 같이 AC 코드는 다음과 같습니다
. (1) #INCLUDE <cstdio>
 2 #INCLUDE <알고리즘>
 3.  #DEFINE 최대 0x3f3f3f3f
 4.  은 USING  스페이스 STD]
 . 5  
. 6  INT의 N-는, W는, RES, ANS [ 20이고 , PIT [ 25 ]    
 . 7  
. 8  BOOL CMP ( INT A, INT B) {
 . 9      복귀 A> B,
 10  }
 . 11  // STEP 현재 프로세스가 여러 고양이 최초로, 스텝 1 고양이 자동차 CNT 처리 복수 
12은  보이드 DFS ( INT의 단계 의 INT {) CNT
 (13)는      IF (CNT > =RES)
 14          리턴 ;
 15      IF 단계 (N - == + 1이다. ) {
 16          RES = 분 (RES, CNT)
 (17).          ;
 18이다      }
 (19).      
(20)가      // 고양이의 종래의 공정을 찾고 차 자동차 
(21)      위한 ( INT I = 1. , I는 = CNT를 <; I는 ++ ) {
 22은          IF (PIT [I] + ANS [STEP] <= W) {
 23 인              PIT [I] + = ; ANS [STEP]
 24              DFS (스텝 + . 1 , CNT)
 (25)는              [I] PIT - = 된 ANS [STEP]
 26 인         }
 27      }
 28      //는 종래의 자동차 새에 적합한 차량을 발견하고으로 고양이 
29      PIT [CNT + 1. =] ANS [STEP]
 30      DFS (+ STEP . 1 , CNT + . 1 )
 (31)이다  }
 32  
33는  INT 본체 ( 공극 )
 (34)가  {
 35      는 scanf ( " %의 D %의의 D " , 및 N-, ) W,
 36       ( INT I = 1. ; I <= N-; I는 ++ )
 37          는 scanf ( " % D " ,ANS [I]);
38      정렬 (ANS + 1 , ANS + 1 + N, CMP);
39      입술 = 최대;
40      DFS ( 1 , 1 );
41      의 printf ( " % D \ 없음 " , 해상도);
42  
43      복귀  0 ;
44 }

 

 

추천

출처www.cnblogs.com/gn1314/p/11416238.html