NOIP2017模擬賽14 靈魂畫師

2022-02-19 07:55:49 字數 2113 閱讀 3208

靈魂畫師

題目描述

雖然不知道為什麼,但是你一直想用一種神奇的方式完成一幅畫作。

你把n張畫紙鋪成一排,並將它們從1到n編號。你一共有c種顏色可用,這些顏色可以用0到c-1來編號。初始時,所有畫紙的顏色都為1。你一共想進行k次作畫,第i次作畫時,你會等概率隨機地選閉區間[li,ri]內的畫紙的乙個子集(可以為空),再隨機挑一種顏色bi,並把挑出來的畫紙都塗上該顏色。原有顏色a的畫紙在塗上顏色b後,顏色會變成(a*b) mod c,這是這個世界的規律。

因為你將顏色用數字來命名了,因此你可以求出在k次作畫結束後,每張畫紙上的顏色對應的數字相加之和的期望。現在請你程式設計求一下這個值。

以防萬一你不知道什麼是期望:如果乙個量x,它有p1的概率值為v1,有p2的概率值為v2……pn的概率值為vn,則x的期望值等於p1v1+p2v2+……+pnvn

輸入格式

第一行包含3個正整數n, c, k,意義如題所述。

接下來k行,每行包含兩個數li, ri,表示你每次操作會從哪個區間內隨機地選畫紙。

輸出格式

一行,乙個小數,表示答案,四捨五入精確到小數點後3位。

樣例輸入1

231

12

樣例輸出1

2.000
樣例解釋一共有4種選擇子集的可能,每種的概率都是1/4。

選空集:畫紙不會發生改變,顏色和是1+1=2;

選:畫紙2不會發生改變。選顏色有3種可能,使得畫紙1最終分別變成顏色0、1、2,概率都是1/3,顏色和的期望是1/3*(0+1)+1/3*(1+1)+1/3*(2+1)=2;

選:與選1對稱,顏色和的期望也是2;

選:選顏色有3種可能,使得兩張畫紙最終都變成顏色0、1、2,概率都是1/3,顏色和的期望是1/3*(0+0)+1/3*(1+1)+1/3*(2+2)=2;

綜上,4種選擇子集的方案的顏色和的期望為2。

樣例輸入2

333

1223

13

樣例輸出2

2.639
資料範圍:

思路:

和的期望=期望的和。由於每張紙的初始狀態都是1,所以考慮n3的期望dp。我們用dp[i][j]表示一張紙被操作了i次之後變成顏色j的概率。對每張紙單獨計算,統計操作了幾次。在每次列舉子集時,區間內的每個元素都有二分之一的概率被選中上色,而每種顏色被選中的概率是1/c,然後我們就有了轉移方程,如果被選上:dp[t][i*j%c]+=dp[t-1][i]/(c*2);如果沒被選上:dp[t][i]+=dp[t-1][i]/2;

**:

#include#include

#include

using

namespace

std;

int n,c,k,a,b,num[108

],maxn;

double dp[108][108

],ans;

long

long

read()

while(ch>='

0'&&ch<='9')

return x*f;

}int

main()

}dp[

0][1]=1

;

for(int t=1;t<=maxn;++t)

dp[t][i]+=dp[t-1][i]/2

; }

}for(int i=1;i<=n;++i)

}printf(

"%.3lf

",ans);

return0;

}

NOIP2017模擬 鴨舌

題目 小美喜歡吃鴨舌。有乙個 n 個點的樹,每個節點 i 第 i 個點上有 ai 個鴨舌。小美一開始處於 x 號點。每次小美可以選擇乙個與現在的點有邊的點而且那個點還有鴨舌,那麼小美會走到那個點並吃乙個鴨舌。要保證小美最後還是走到 x 號點。問小美最多能吃幾個鴨舌?輸入格式 輸入第一行乙個整數 n ...

NOIP2017模擬 區間

2017.11.3 t1 2032 樣例資料 輸入3 2 1 2 1 1 2 4 5輸出 2 6分析 這道題為什麼要放在t1 考得我懷疑人生。本來也只會暴力找,對於30 的資料我是這樣的 先離散化,再二維陣列記錄所有顏色的在每個位置的字首和,然後四層迴圈暴力查詢。而正解是 先離散化,再把每種顏色的每...

NOIP2017提高組模擬賽4 (總結)

這道題就是很簡單的bfs,可以觀察到n變化到m是近似成倍增長的。其實從最小到最大的變化也就只有30次而已。include include include typedef long long ll using namespace std const int maxl 100 const int oo ...