[求助] 传说中的本地AC评测WA掉的情况发生在我的身上了QAQ

P2704 [NOI2001] 炮兵阵地

_YPC @ 2018-10-29 15:41:01

这道题目我第一个点WA了,但是各位想想,这题目的第一个点就是样例,我怎么可能样例没过就提交啊……而且我自己也把这个这点下载下来测过了,Van♂全没有问题啊……

这个是数据:

Sample Input:
5 4
PHPP
PPHH
PPPP
PHPP
PHHP

Sample Output:
6

然后这个是代码:

#include<bits/stdc++.h>
using namespace std;
const int maxn=106,maxs=(1<<10)+6;
int f[2][maxs][maxs],n,tot[maxn],sta[maxn][maxs],m,ans;
inline void get_status(int x,int t){
    for (int i=0;i<(1<<m);i++){
        if ((i&t)||(i&(i<<1))||(i&(i<<2)))continue;
        sta[x][++tot[x]]=i;
    }
}
inline int get_one(int x){
    int ret=0;
    while (x)ret=ret+x%2,x>>=1;
    return ret;
}
int main(){
    scanf("%d%d",&n,&m);
    for (int i=1;i<=n;i++){
        getchar();
        int t=0;
        for (int j=1;j<=m;j++){
            char ch=getchar();
            if (ch=='P')t=(t<<1);else t=(t<<1)+1;
        }
        get_status(i,t);
    }
    sta[0][tot[0]=1]=0;
    for (int i=1;i<=tot[1];i++)f[1][i][1]=get_one(sta[1][i]);
    for (int i=2;i<=n;i++)
    for (int j=1;j<=tot[i];j++)
    for (int k=1;k<=tot[i-1];k++){
        if (sta[i][j]&sta[i-1][k])continue;
        for (int a=1;a<=tot[i-2];a++){
            if ((sta[i][j]&sta[i-2][a])||(sta[i-1][k]&sta[i-2][a]))continue;
            f[i&1][j][k]=max(f[i&1][j][k],f[(i-1)&1][k][a]+get_one(sta[i][j]));
        }
    }
    for (int i=1;i<=n;i++)
    for (int j=1;j<=tot[i];j++)
    for (int k=1;k<=tot[i-1];k++)ans=max(ans,f[i&1][j][k]);
    printf("%d\n",ans);
    return 0;
}

这个点我在洛谷上测出来的是5,但是本地跑就是6……(各位可以把我的代码拷贝下来自己测一下qwq)

非常难受啊,求巨佬解答QAQ。


by jeffqi @ 2018-10-29 17:50:10

@_YPC 我本地上测也是6


by _YPC @ 2018-11-02 16:17:40

@jeffyang QAQ


by fxhfxh55555 @ 2018-11-20 23:29:44

linux的锅吧。。。getchar换成手写快读试试=。=


by 白格Lifeplayer @ 2019-10-26 23:37:53

我也是,只有第一个样例点WA了,其他全A了QAQ


上一页 |