第一个点(样例)提交后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;
}