POJ 1185 炮兵陣地 最2的錯誤出現了

來源:互聯網
上載者:User

知道什麼是1 ,什麼是0.

題意:求一個棋盤中最多可以放幾個十字(十字尺寸一定,寬度為一格)。

做法:壓縮一下就可以了,較水,只是,2了一下。。。。

#include<stdio.h>#include<string.h>int dp[105][65][65];int state[65],get[65],blo[105];int n,m,all,ret;inline int max(int a,int b){    return a>b?a:b;}void dfs(int lie,int s){    if(lie>=m)    {        for(int i=0;i<lie;i++)        if(1<<i&s)get[all]++;        state[all++]=s;        return ;    }    dfs(lie+1,s);    dfs(lie+3,s|1<<lie);//應該是加3!!!T_T}int main(){    int i,j,k,t,ans;    char clo[15];    while(scanf("%d%d",&n,&m)!=EOF)    {        all=0;        memset(blo,0,sizeof(blo));        memset(dp,-1,sizeof(dp));        memset(get,0,sizeof(get));        ret=-1;        dfs(0,0);        for(i=1;i<=n;i++)        {            scanf("%s",clo);            for(j=0;j<m;j++)            if(clo[j]=='H')            blo[i]=blo[i]|1<<j;        }         for(i=0;i<all;i++)           if((blo[1]&state[i])==0)            dp[1][0][i]=get[i];        if(n>1)       {          for(i=2;i<=n;i++)            for(j=0;j<all;j++)               if((blo[i]&state[j])==0)                 for(k=0;k<all;k++)                   if((state[j]&state[k])==0)                    for(t=0;t<all;t++)                      if((state[t]&state[k])==0&&(state[t]&state[j])==0)                         dp[i][k][j]=max(dp[i][k][j],dp[i-1][t][k]+get[j]);        }        ans=0;        for(i=0;i<all;i++)          for(j=0;j<all;j++)            ans=max(ans,dp[n][i][j]);        printf("%d\n",ans);    }      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.