문제 밸리 P1209 [[USACO1.3] 수리 불펜 반 수리] 로스 솔루션

질문 표면 :

제목 설명

높은 어둡고 폭풍우 치는 밤에 폭풍우 치는 밤에 따라, 농부 존 불펜의 지붕, 문이 날아했다. 다행스럽게도, 많은 가축 휴가, 그래서 더 소 살지 않았다. 소는 소 하룻밤이 살고, 다른 옆에 정렬됩니다. 젖소 암소의 일부는, 일부는하지 않습니다. 모든 외양간은 같은 폭을 갖습니다. 문이 누락되어 있기 때문에, 농부 존은 가능한 한 빨리 새 보드 전에 불펜을 건립해야한다. 그의 새로운 목재 공급 업체는 그에게 그가 원하는 어떤 길이를 제공하지만, 인색 공급 업체는 나무의 제한된 수의를 제공 할 수 있습니다. 농부 존은 총 길이를 최소화하기 위해 자신의 나무를 사고 싶어.

주어진다 : 시판 보드의 최대 가능 수를 M (1 <= M <= 50) 전체 외양간 S (1 <= S <= 200), 가축의 수 우사 C (1 <= C < = S) 및 암소 번호 stall_number (1 <= stall_number <= S), 나무의 필요 최소한의 전체 길이를 계산 소 반 전부를 멈춘 우사. 원하는 답으로서 출력 보드의 최소 총 길이.

입력 형식

라인 1 : 기판의 최대 수가 M, S의 총 개수 및 가축 축사 C의 총 수 (공백으로 구분)

두 번째 줄에 C + 1 : 각 행 점유 가축 축사의 수를 나타내는 정수를 포함한다.

출력 형식

하나의 선은 나무의 원하는 최소한의 전체 길이를 나타내는 정수가 포함되어 있습니다.


 

이 질문은 첫째로 설정할 수 있습니다

목재 조각의 전체를 덮는 것으로 이해 개의 소 각각의 중간 범례 같이 보이드가 m-1 번 끊어 질 수 흘렸다

그러나 필요 특 판정 m>는 제 6 및 제 7 포인트 또는 RE WA로 이어질 때문에 목재 소비보다 나무 필요성 C,

강령

#INCLUDE <알고리즘> 
#INCLUDE <iostream> 
#INCLUDE <iomanip> 
#INCLUDE <CString을> 
#INCLUDE <cstdio> 
#INCLUDE <cmath> 
#INCLUDE <큐> 
네임 스페이스를 사용하여 STD, 
INT의 m, S, C, A [205] , B는 [205], ANS = 0; 
BOOL CMP (INT의 X, Y의 INT)은 {반환 X> Y} // 내림차순 행 
INT 읽기 () 
{INT X = 0; CHAR CH = getchar가 (); 
    그동안 (CH <0 || CH> '9.') CH = getchar가 (); 
    그동안 (CH> = 0 && CH <= '9.') = {X * X + CH 10 '0 '; CH getchar가 = ();} 
    리턴 X; 
} 빠른 판독 // 
INT의 main () 
{ 
    m =) (읽기, S ()가 판독 =; C ()가 판독 =; 
    IF (m> C) {의 printf ( "%의 D를" , c) 0 반환} // 공보 판정 경우 나무 판자 번호 별 소비해야 
    (I = 1을 인터넷 용;난에 c = <; 내가 ++)는 [I]를 판독 = ();
    정렬 (A + 1, A + C + 1);
    대해 INT (I = 2; 나는 =에 c <; 내가 ++) [I-1]가 = B A [I] -a [I-1]; // 얻어진 소 소 공극 중간 
    ANS = A [ C] -a [1] +1; // 초기 전체 피복 
    종류 (B + 1, B +에서의 C, CMP) // 무효 하강 행 
    대 (INT I = 1; I <= M- 1; 내가 ++) ANS = ANS -b [I] +1 // 감산 보이드 
    , ANS)에의 printf ( "%의 D"를, 
    반환 0; 
}

  

추천

출처www.cnblogs.com/Peter-Rabbit/p/11308080.html