CF404D Minesweeper 1D

來源:互聯網
上載者:User

說明見:https://github.com/CyberZHG/blog/issues/10


#include <cstdio>const int MAXN = 1e6 + 10;const int MOD = 1e9 + 7;int dp[MAXN][5];char s[MAXN];int main(){    int n;    scanf("%s", s);    switch (s[0])    {    case '?':        dp[0][0] = dp[0][2] = dp[0][4] = 1;        break;    case '*':        dp[0][4] = 1;        break;    case '0':        dp[0][0] = 1;        break;    case '1':        dp[0][2] = 1;        break;    }    int i;    for (i = 1; s[i]; ++i)    {        switch (s[i])        {        case '?':            dp[i][0] = (dp[i - 1][0] + dp[i - 1][1]) % MOD;            dp[i][1] = dp[i - 1][4];            dp[i][2] = (dp[i - 1][0] + dp[i - 1][1]) % MOD;            dp[i][3] = dp[i - 1][4];            dp[i][4] = ((dp[i - 1][2] + dp[i - 1][3]) % MOD + dp[i - 1][4]) % MOD;            break;        case '*':            dp[i][4] = ((dp[i - 1][2] + dp[i - 1][3]) % MOD + dp[i - 1][4]) % MOD;            break;        case '0':            dp[i][0] = (dp[i - 1][0] + dp[i - 1][1]) % MOD;            break;        case '1':            dp[i][1] = dp[i - 1][4];            dp[i][2] = (dp[i - 1][0] + dp[i - 1][1]) % MOD;            break;        case '2':            dp[i][3] = dp[i - 1][4];            break;        }    }    --i;    printf("%d\n", ((dp[i][0] + dp[i][1]) % MOD + dp[i][4]) % MOD);    return 0;}


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.