gdfzoj \ # 470 Red is good (수학 적 기대)
처음으로 블 로 그 를...원본 링크:http://www.gdfzoj.com/oj/problem/470 수학 적 기대
제목 설명
Problem 470: [HbFS-]Red is good Time Limit: 1000 ms Memory Limit: 524288 KB
Problem Description 데스크 톱 에는 R 장의 레드카드 와 B 장의 블랙 카드 가 있 습 니 다. 무 작위 로 순 서 를 흐 트 러 뜨 린 후 데스크 톱 에 놓 고 한 장 한 장 씩 카드 를 뒤 집 기 시작 합 니 다. 레드 카드 를 뒤 집 으 면 1 달러 를 받 고 블랙 카드 는 1 달러 를 받 습 니 다.언제든지 카드 뒤 집기 를 멈 출 수 있 고, 가장 좋 은 전략 에서 평균 얼 마 를 받 을 수 있다.답 을 출력 할 때 소수점 후 6 위 후의 것 은 모두 제거 하고 반올림 하지 마 세 요.
Input 한 줄 에 두 개의 숫자 R, B 를 입력 하면 그 값 은 0 에서 5000 사이 입 니 다.
Output 은 최 적 화 된 전략 에서 평균 얼 마 를 얻 을 수 있 습 니까?
Sample Input 5 1
Sample Output 4.166666
분석 하 다.
주제 의 뜻 을 직접 보면 생각 이 없 는 것 같 지만 적당 한 전략 을 생각 할 수 있다 면 해법 이 비교적 뚜렷 하 다.먼저 해법 전략 을 고려 할 때 우 리 는 '좋 은 것 을 보면 받 을 수 있다' 는 전략 을 사용 할 수 있다. 바로 다음 카드 를 떼 고 남 은 레드카드 의 수량 이 남 은 블랙 카드 의 수량 보다 많 으 면 수학 기대 공식 을 운반 하 는 것 이다.
E(x)=∑i=1nXiPi
이 공식 이 있 으 면 우 리 는 E (x, y) 를 설정 하여 남 은 x 장의 레드카드 를 받 을 때 y 장의 블랙 카드 는 기대 치 를 나 타 낼 수 있다.
그렇다면 전달 공식 은
E(x,y)=xx+y(E(x−1,y)+1)+yx+y(E(x,y−1)−1)
그 중에서 도 앞 에 서 는 레드카드 를 받 은 경우, 뒤 에는 레드카드 를 받 은 경 우 를 나타 낸다.
그리고 특 판 을 진행 해 E (x, y) 가 0 보다 적 으 면 나머지 레드카드 의 수가 남 은 블랙 카드 의 수 보다 적 다 는 뜻 이 라면 뒤 집기 가 중단 된다.
마지막 으로 E (R, B) 를 출력 하 는 것 이 답 이다.
코드
#include
#define max 5500
using namespace std;
int i,j,r,b;
double e[max][max],ll,rr;
int main()
{
scanf("%d%d",&r,&b);
//for (i=0;i<=r;i++) e[i][0]=i;
for (i=0;i<=r;i++)
for (j=0;j<=b;j++)
{
ll=(double)i/(double)(i+j); rr=(double)j/(double)(i+j);
if (i) e[i][j]+=(e[i-1][j]+1)*ll;
if (j) e[i][j]+=(e[i][j-1]-1)*rr;
if (e[i][j]<0) e[i][j]=0;
}
printf("%.6f",e[r][b]-0.0000005);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【경쟁 프로 전형적인 90문】008의 해설(python)의 해설 기사입니다. 해설의 이미지를 봐도 모르는 (이해력이 부족한) 것이 많이 있었으므로, 나중에 다시 풀었을 때에 확인할 수 있도록 정리했습니다. ※순차적으로, 모든 문제의 해설 기사를 들어갈 예정입니다. 문자열...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.