블 루 브리지 컵알고리즘 증가확률 계산 (동적 계획)

문제 설명 은 n 개의 8712 ° [a, b] 의 무 작위 정 수 를 생 성하 고 이들 의 출력 과 x 의 확률 입 니 다.입력 형식 한 줄 에 네 개의 정 수 를 입력 하면 n, a, b, x 순 으로 빈 칸 으로 구분 합 니 다.출력 형식 출력 한 줄 은 하나의 소수 비트 와 x 의 확률 을 포함 하고 소수 점 후 4 비트 소수 샘플 입력 을 보류 합 니 다. 2134 사례 출력 0.3333 데이터 규모 와 50% 에 대한 데 이 터 를 약정 합 니 다. n ≤ 5. 100% 의 데이터 에 대해 n ≤ 100, b ≤ 100.
import java.math.BigDecimal;
import java.util.Scanner;

/** * @author   * */
public class Main {
    /** * @param args */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int a=sc.nextInt();
        int b=sc.nextInt();
        int x=sc.nextInt();
        double[][] dp=new double[n+1][x+1];//dp[i][j]:   i    j   
        dp[0][0]=1;
// for(int j=1;j<=x;j++){
// dp[0][j]=0;
// }
        for(int i=1;i<=n;i++){
            for(int j=0;j<=x;j++){
                for(int t=0;t<=x;t++){//t   i-1     ,dp[i-1][t]   i-1      t   
                    if((j-t)<=b&&(j-t)>=a){
                        dp[i][j]+=dp[i-1][t]*(1.0/(b-a+1));
                    }
                }
            }
        }
        System.out.println(new BigDecimal(dp[n][x]).divide(BigDecimal.ONE,4,BigDecimal.ROUND_HALF_UP));
    }

}

좋은 웹페이지 즐겨찾기