반짝반짝 3
시간 제한4초메모리 제한1536 MB
각 정점의 전구는 주어진 확률로 켜지고, 각 간선의 전구는 양 끝 정점 중 하나만 켜졌을 때 켜진다. 정점 확률을 갱신할 때마다 켜진 전구 개수의 기댓값을 구한다.
문제
국렬이는 작년 여름에 사용하다 남은 전구 스트립을 이용해서 자신의 자취방에 있는 개의 정점으로 이루어진 트리를 장식하려고 한다.
전구는 트리의 각 정점에 하나씩 설치되어 있다. 번째 정점에 붙어있는 전구는 전원을 넣었을 때 의 확률로 켜진다. 그리고 전구에 여유가 넘치는 국렬이는 간선에 추가 전구를 하나씩 달았다. 이 추가 전구들은 연결된 두 정점에 설치된 전구들 중 하나만이 켜졌을 때 불이 켜진다.
추가로 국렬이는 번 특정 정점에 설치된 전구를 다른 전구로 바꿀 것이다. 각 시점별로 불이 들어오는 전구 개수의 기댓값을 구하여라.
입력
첫 번째 줄에는 정점의 개수 이 주어진다. ()
두 번째 줄에는 부터 이 주어진다. 이는 정확히 소수점 아래 두 자리까지 주어진다. ()
세 번째 줄부터 번째 줄까지 두 정수 , 가 주어진다. 이는 주어진 트리에 정점 와 정점 를 연결하는 간선을 의미한다. (, )
번째 줄에는 전구를 바꾸는 횟수를 의미하는 가 주어진다. ()
그다음 개의 줄에 걸쳐서 양의 정수 와 음이 아닌 실수 가 주어진다. 이는 정점 에 설치된 전구를 켜질 확률이 인 전구로 교체하는 것을 의미한다. 는 정확히 소수점 아래 두 자리까지 주어진다. (, )
출력
첫 번째 줄에는 초기의 불이 들어오는 전구의 기댓값을 출력한다. 그다음 개의 줄에 걸쳐서 각 시점별로 불이 들어오는 전구 개수의 기댓값을 출력한다. 출력한 값과 정답과의 절대 오차 또는 상대 오차가 이하여야 한다.