P2704本地运行和你谷运行输出不一样
查看原帖
P2704本地运行和你谷运行输出不一样
211649
BJ_zpy楼主2021/8/25 14:40

第一个点(样例)提交后WA了

对于这组数据:

5 4
PHPP
PPHH
PPPP
PHPP
PHHP

我的程序在本地输出为6,是正确的,在别的IDE上也是正确的,但在你谷的IDE上运行是5,交上去第一个点(样例)也是5,但看不出问题,烦请大佬们看看

Code:

#include<cstdio>
#include<iostream>
using namespace std;
int f[105][75][75];
int g[105],s[75],num[75];
int n,m,cnt;
int main()
{
    char C;
    scanf("%d%d",&n,&m);
    for(int i=1; i<=n; i++)
    {
        scanf("%c",&C);
        for(int j=0; j<m; j++)
        {
            scanf("%c",&C);
            if(C=='P')g[i]+=1<<(m-j-1);
        }
    }
    for(int i=0; i<(1<<m); i++)
        if(!(i&i>>1)&&!(i&i>>2)&&!(i&i<<1)&&!(i&i<<2))
        {
            s[cnt++]=i;
            for(int j=0; j<m; j++)
                num[i]+=((i>>j)&1);
        }
    for(int i=1; i<=n+2; i++)
        for(int a=0; a<cnt; a++)
            for(int b=0; b<cnt; b++)
                for(int c=0; c<cnt; c++)
                    if(!(s[a]&s[b])&&!(s[a]&s[c])&&!(s[b]&s[c])&&(g[i]&s[a])==s[a]&&(g[i-1]&s[b])==s[b])
                        f[i][a][b]=max(f[i][a][b],f[i-1][b][c]+num[s[a]]);
    printf("%d",f[n+2][0][0]);
    return 0;
}
2021/8/25 14:40
加载中...