고급 실험 2-3.1 해적 전리품 (25 점)

P D 해적 다이아몬드가 높은 바다의 전리품에 온 훔친 전리품은 다음과 같은 전략에 합의

첫째, P 1 해적은 추첨으로 결정 - P.의 수를 이어서 적 1 호에 의해 제안 된 할당 방식 (각각의 프로그램에 대한 고유 번호가 공유 적 주어져야한다) 수득 될 수있는 경우를 포함 하나를 포함하는 절대 다수 (즉, 더 이상 반) 예, 프로그램이 할당에 따라 실행되고, 그것이 절대 다수 동의 프로그램이 함께 제공 얻을 수있을 때까지 3 번 등 해적에 다음 유사하게 제 2 호에 의해 제안 될 다음에, 또는 그 독점적 만 해적,있다, 그렇지 않으면, 1 위는 공급 상어를 바다에 투입 될 것입니다 모든 다이아몬드. 해적의 자신의 주에서 다이아몬드 할당 1 위의 번호가 부여하는 프로그램을 작성합니다.

이 세 가지 가정을 함께 제공 :

  • "스마트"와 "탐욕은"가정 : 항상 행동 규범으로 자신의 이익을 극대화 할 수있는 각각의 해적;
  • "인류는"가정 : 경우에 많은 다이아몬드로 얻을 수있는, 의도적으로 죽음에 공범이 발생하지 않는 해적;
  • 해적, 해적들 사이에 개인적인 원한이 없습니다 및 우선 순위 원칙의 다른 다이아몬드 적은 수의 순서를 제공합니다 : "편견"는 것으로 가정합니다.

입력 형식 :

D 입력은 두 양의 정수를 부여하고, P (행 3 ≦ P ≦ D ≦ 100).

출력 형식 :

다이아몬드의 수는 1 위 해적 다이아몬드 출력 할당의 점유율을 소유하고 있습니다.

샘플 입력 :

10 7
 

샘플 출력 :

6

그것은 제목의 게임을 추측하기 쉽지만, 경기 업의 열쇠입니다, 그래서 단지 가능한 한 그에게주고, 게임이 약하지만, 다행히 세 가정이 질문은, 각각의 해적 행위의 내 코드에 대한 혜택을 극대화, 그는 죽음에 당신을 치료하지 않을 것이다, 당신을 지원합니다. 모든 솔루션은, 제목에 대한 샘플을 채취, 위의 한 후 프로그램을 기초로 구축
에만 7 번 사람이 반드시 가장 좋은 방법은 자신의 다이아몬드의 모든 10을 얻을 경우,
경우 6, 7 나머지, 7 호, 6 0, 7, 6, 중단됩니다 충족되지 않는 한 번호를 모두 얻을 수 있습니다
그것은 자신의 불멸을 보장하면서 최대의 효과를 얻기 위해, 5 번 프로그램을 경우, 그는 6 번 틴틴 혜택을 제공 할 필요가 그에게 하나를주고 그, 그는 5를 지원하는 것입니다, 당신은 좋은보다 더 얻을 수없는,
같은, 그들에 숫자 5를 기준으로이 사람들의 많은 양에 어떤 사람을 그리는 4 필요성을 제 자신을 지원
해결하기 위해 우선 순위 큐 여기.
코드 :
#INCLUDE <cstdio> 
#INCLUDE <iostream> 
#INCLUDE <큐>
 사용  공간을 성병;
INT D, P;
INT의 V [ 101 ];
구조체 CMP {
     부울  연산자 () ( CONST  INT & A CONST  INT 및 b) CONST {
         복귀 V [A]> V [B] 
    } 
}; 
int로 주 () { 
    는 scanf를 ( " % D % D ' , D, P); 
    priority_queue < INT 벡터 < INT> CMP> Q; 
    V [P] = D; 
    q.push (p); 
    q.push (p - 1 );
    int로하지 아니 = P를 - 2 ;
    반면 (NO> 0 ) {
         INT NUM = 1 , C = (D);
        반면 (NUM * 2 <= P - 없음 + 1 ) { 
            C - ++ = V [q.top ()]; 
            () q.pop; 
            NUM ++ ; 
        } 
        동안 (! q.empty ()) { 
            V [q.top ()] = 0; 
            () q.pop; 
        } 
        V [NO] = C;하지
        위한 ( INT 난 더 = 없음 -; I <= P; I ++ ) { 
            q.push (I); 
        } 
    } 
    의 printf ( " %의 D ' , V [ 1 ]); 
}

 

추천

출처www.cnblogs.com/8023spz/p/12307645.html