9-7NOIP模擬賽總結

今天又考炸了,只有100pt,感覺人生無望了。。。

T1

第一題又來期望,哎,這次終於調對了期望dp,高高興興地拿了50pt,可是發現正解比我這個記憶化還好寫些。。。,真是腦袋短路,以後要記得概率和期望是一對好基友,當求期望的複雜度很高的時候,我們要想到用概率來求期望,可能達到預想不到的效果。
貼一下50pt的代碼和100分的概率dp

LL dfs(int x,bool wh,int res)
{
    //cout<<x<<" "<<wh<<" "<<p<<" "<<sum<<" "<<res<<endl;
    if(x > n)return 0;
    if(!res)wh=1;
    if(dp[x][res][wh])return dp[x][res][wh];
    LL Ans = 0;
    if(wh)
    {
        LL p = (1 + mod - P)%mod;
        (Ans += ((dfs(x+1,wh,0)%mod + A))%mod*p%mod)%=mod;
        (Ans += ((dfs(x+1,wh^1,m)%mod + A)%mod*P%mod)%mod)%=mod;
    }
    else if(!wh)
    {
        LL p = (1 + mod - D)%mod;
        (Ans += ((dfs(x+1,wh,res-1)%mod + B)%mod*p)%mod)%=mod;
        (Ans += ((dfs(x+1,wh,res-1)%mod + C)%mod*D)%mod)%=mod;
    }
    return dp[x][res][wh] = Ans;
}
    LL R=((B*(1-D)+C*D)%mod+mod)%mod;
    f[0] = 1;
    REP(i,1,m) f[i] = (LL)(f[i-1]*(1-P)%mod+mod)%mod;
    REP(i,m+1,n) f[i] = (((LL)f[i-1]*(1-P)+(LL)f[i-m-1]*P)%mod+mod)%mod;
    LL ans = 0;
    REP(i,1,n)
    {
        f[i] = (f[i] + mod) % mod;
        ans = (ans + (LL)f[i]*A+(LL)(1-f[i])*R)%mod;
    }

T2

好像是一道比較難的題目,只打了30pt的爆搜,還掉了10分,忘記跟0取max了。

T3

貌似轉換一下就是個二維數點?補充個東西,還不錯,問離這個數最近的比這個數大的數,建立權值線段樹,權值的位置插入下標查詢最大值就好了。

經驗與不足

記得看清題目與0取max,記得概率與期望的關係!!!

發佈了95 篇原創文章 · 獲贊 14 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章