• BZOJ 1434: [ZJOI2009]染色游戏



    一开始想这不$SG$裸题...然后发现100组数据...然后发现连通块是任意的求$SG$貌似要暴力枚举....

    然后想了一下1维,手动打表,每次就是队当前所有异或后缀和求$mex$,好像就是$lowbit$的样子

    然后2维就不会了...

    看题解 什么!写个暴力打表!什么!2的幂

    不管了抄结论行了.....

    发现$i=1, j=1$真的需要手动打表的结果啊

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    const int N=105;
    inline int read(){
        char c=getchar();int x=0,f=1;
        while(c<'0'||c>'9'){if(c=='-')f=-1; c=getchar();}
        while(c>='0'&&c<='9'){x=x*10+c-'0'; c=getchar();}
        return x*f;
    }
    int n,m,ans[N<<1];
    char s[N];
    int Log[N];
    inline void iniLog(){
        Log[1]=0;
        for(int i=2;i<=200;i++) Log[i]=Log[i>>1]+1;
    }
    int main(){
        freopen("in","r",stdin);
        int T=read();
        iniLog();
        while(T--){
            m=read();n=read();
            memset(ans,0,sizeof(ans));
            for(int i=1;i<=m;i++){
                scanf("%s",s+1);
                for(int j=1;j<=n;j++) if(s[j]!='H'){
                    if(i!=1 && j!=1) ans[i+j-2]^=1;
                    else if(i==1) ans[ Log[ j&(-j) ] ]^=1;
                    else ans[ Log[ i&(-i) ] ]^=1;
                }
            }
            int flag=0;
            for(int i=0;i<=n+m;i++) if(ans[i]) {flag=1;break;}
            if(flag) puts("-_-");
            else puts("=_=");
        }
    }
  • 相关阅读:
    cookie的过期时间
    Cookie的使用及位置
    用存储过程进行的查询拼接
    验证码的使用
    SQLHelper
    App_code的引用
    GridView使用
    javascript、ajax验证
    数据库小结(三)
    数据库操作(七)存储过程
  • 原文地址:https://www.cnblogs.com/candy99/p/6544432.html
Copyright © 2020-2023  润新知