zoukankan      html  css  js  c++  java
  • hdu_5965_扫雷(递推)

    题目链接:hdu_5965_扫雷

    题意:

    中文,还是自己看吧。

    题解:

    现场赛这题用的状压DP过的,不过现在想想当时还确实想复杂了,冷静下来仔细思靠一下,其实第i-1个确定了,那么第i个也是确定的,可以递推出来。

    设dp[i]表示第i列的雷数,然后枚举一下第一列的雷数,就可以推出所有的雷,然后算一下贡献

     1 #include<bits/stdc++.h>
     2 #define F(i,a,b) for(int i=a;i<=b;i++)
     3 using namespace std;
     4 
     5 const int N=1e4+7,P=1e8+7;
     6 
     7 char s[N];
     8 int num[N],dp[N],t,ans,n;
     9 
    10 int main()
    11 {
    12     scanf("%d",&t);
    13     while(t--)
    14     {
    15         scanf("%s",s+1),ans=0;
    16         n=strlen(s+1);
    17         for(int i=1;i<=n;i++)num[i]=s[i]-'0';
    18         F(i,0,num[1])
    19         {
    20             dp[1]=i;
    21             if(i>2)break;
    22             int j;
    23             for(j=2;j<=n;j++)
    24             {
    25                 int now=num[j-1]-dp[j-1]-dp[j-2];
    26                 if(now>2||now<0)break;
    27                 dp[j]=now;
    28             }
    29             if(j<=n||dp[n-1]+dp[n]!=num[n])continue;
    30             int an=1;
    31             F(j,1,n)if(dp[j]==1)an*=2,an%=P;
    32             ans+=an,ans%=P;
    33         }
    34         printf("%d
    ",ans);
    35     }
    36     return 0;
    37 }
    View Code
  • 相关阅读:
    https://github.com/cykl/infoqscraper/
    C# 笔记
    json.org
    python html parse
    doxygen
    review board
    ruunlevel debian
    连接REDIS
    composer
    php需要注意的地方
  • 原文地址:https://www.cnblogs.com/bin-gege/p/6033731.html
Copyright © 2011-2022 走看看