zoukankan      html  css  js  c++  java
  • [bzoj1188]*游戏

    容易发现所有豆子相互独立,只需要考虑每一个豆子的sg函数并异或起来即可,sg函数从后往前暴力即可

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int t,n,x,y,z,s,ans,a[105],sg[105],vis[105];
     4 int main(){
     5     scanf("%d",&t);
     6     while (t--){
     7         scanf("%d",&n);
     8         for(int i=1;i<=n;i++)scanf("%d",&a[i]);
     9         memset(sg,0,sizeof(sg));
    10         x=y=z=s=ans=0;
    11         for(int i=n;i;i--){
    12             memset(vis,0,sizeof(vis));
    13             for(int j=i+1;j<=n;j++)
    14                 for(int k=j;k<=n;k++)vis[sg[j]^sg[k]]=1;
    15             while (vis[sg[i]])sg[i]++;
    16             if (a[i]&1)s^=sg[i];
    17         }
    18         for(int i=1;i<=n;i++)
    19             if (a[i])
    20                 for(int j=i+1;j<=n;j++)
    21                     for(int k=j;k<=n;k++)
    22                         if ((s==(sg[i]^sg[j]^sg[k]))&&(!ans++))printf("%d %d %d
    ",i-1,j-1,k-1);
    23         if (!ans)printf("-1 -1 -1
    ");
    24         printf("%d
    ",ans);
    25     }
    26 }
    View Code
  • 相关阅读:
    Activity详解
    Log和LogCat的使用
    Android Studio项目目录结构
    Android系统架构
    [SCOI2016]美味
    [SCOI2016]背单词
    [SCOI2016]幸运数字
    [BZOJ4170]极光
    [JSOI2016]扭动的回文串
    [SCOI2016]萌萌哒
  • 原文地址:https://www.cnblogs.com/PYWBKTDA/p/11832936.html
Copyright © 2011-2022 走看看