Let's Play Osu! (확률 DP

960 단어 DP
제목 링크: 전송 문
제목 설명:
        한 사람 이 Osu 를 하고 있 습 니 다. 이 게임 의 내용 은 바로 'O' 와 'X' 로 구 성 된 문자 입 니 다. 그러면 이 문자열 의 가중치 는 연속 'O' 의 개수 의 제곱 입 니 다. 예 를 들 어 "OOXOOXXOO", 이 문자열 의 가중치 는 2 * 2 + 3 * 3 + 2 * 2 = 17 입 니 다. 현재 길이 가 n 인 문자열 을 드 립 니 다. 문자열 의 모든 위치 가 "O" 일 확률 을 드 립 니 다. 가중치 에 대한 기 대 를 드 립 니 다.(*^_^*)
제목 분석:
       이 문 제 는 분명히 확률 dp 이다.이 문제 의 가중치 알고리즘 은 연속 'O' 의 제곱 합 이다. 그러면 우 리 는 먼저 현재 길이 가 k 인 연속 'O' 문자열 이 있다 고 가정 하고 'O' 문 자 를 추가 하면 원래 의 가중치 에 (k + 1) * (k + 1) - k * k = 2 * k + 1 = 2 * (k + 1) - 1 을 추가 할 수 있다. 그래서 우 리 는 앞 에 연속 'O' 인 확률 dp 를 유지 할 수 밖 에 없다. 그러면 'O' 를 추가 할 수 있다.의 확률 은 2 * dp - pi 입 니 다.
코드:
       
#include
using namespace std;
double a[100005], dp, ans;
int n;
int main(){
    cin >> n;
    for(int i=0;i

좋은 웹페이지 즐겨찾기