[JLOI2013] 카드 게임 [확률 DP]

P2059 [JLOI2013] 카드 게임

동적 프로그래밍 및 확률

조셉 변형 문제 : m 카드가 각각 무작위로 카드를 그릴, 0에서 카드 번호 마일, MI-1은 백성 밖으로의 수와 승리의 모든 확률을 물어보고.
1 <= N은 숫자 m, 카드 <= 50
승리의 시간을 고정 조셉 재귀 문제가 얻을 수 Xn에 사람들 소개
F는 [I] 나 [내가] = (F [I-1] + X) %의 N F이기 개인을 나타낸다
모든 X가, X 1 ... 0,1, X-2는 다음 0,1 ... N-2 및 번호를 다시 부여 +가된다에서, 첫 번째 라운드에서 후 개별 X를 각각 I 고려 작은 문제가 첫 번째 라운드에서 마지막 승자가 Y는 위치에 배치되어야하는 동안 (X + Y)의 N %의
이 문제는, 그것이 인터넷 가정 [I] [J]를 각각의 시간을 나타내는 I, 퍼스널 J, 인터넷 [I] [J] = 시그마 ((K + MI) % 나 == J) F [I 당첨 확률 -1] [K] / m, 초기화 인터넷 [1] [0] = (백분율) (100), 최종 출력 인터넷 [N] [] 그것에.
f를 가능 → [I + 1]로부터 F [I] [J] [(j + x)는 %의 (I + 1)], 즉 경우 (k는 + MI) % 나 == J 때
 일반적으로 간단한에서 성공률 100 % 확신 할 때 생각하는 사람을 밀어 다시 밀어
 
#INCLUDE <비트 / stdc ++ H.>
 사용  스페이스 성병;
#DEFINE 맥스 (X, Y) (X)> (Y)? (X) :( y)의
 #DEFINE 분 (X, Y) (X)> (Y)? (Y) :( X)
 #DEFINE의 RG 레지스터
 #DEFINE이 줄게 긴 긴
 CONST의  INT N = 100 + 5 , M = 0 , = INF 0x3f3f3f3f , P = 99,999,997 ;
INT의 N, M, A [N];
이중 F [N] [N]; 
서식 < 클래스 t> 공극 RD (t 및 X) { 
    X = 0 ; INT w = 0 ; CH = 0 ;
    잠시 w | = CH == (isdigit에 (CH)!) ' - ' , CH = getchar가 ();
    반면 (isdigit에 (CH2)) X = (X << 1 ) + (X << 3 ) + (CH ^ 48 ) = CH getchar가 (); 
    X ? = w - X : X; 
} 


INT 의 main () {
 //     freopen을 ( "in.txt", "R", 표준 입력); 
    RD (N) 번째 (m);
    위한 ( int로 I = 1 ; I <= m; ++ I) RD (a [I]); 
    F [ 1 ] [ 0 ]을 F = [ 1 ] [ 1 ] = 100.0;
    위한 ( int로 I = 2 ; i가 = N <; ++ I)
      ( INT의 J = 1 ; J <= 1; ++ j)의 {
          ( INT에 K = 1 ; K <= m; ++ K) {
         INT (X) = (A [K] %의 ⅰ) [K] %? I : I;
        만약 [I] F (X <J) [J] + = F [Ⅰ- 1 ] [JX] / m;
        다른  경우 [I] F (x> J) [J] + = F [Ⅰ- 1 ] [I- (XJ)] / m; 
            
        } 
    } 
    에 대해 ( int로 I = 1 의 printf (; i가 N <= I ++) " % .2f %%" , F [N]는 [I])는,
     반환  0 ; 
}
 

 

추천

출처www.cnblogs.com/lxyyyy/p/11240946.html