bzoj3105 [ CQOI2013 ] -- 博弈论+线性基+贪心

来源:互联网 发布:centos设置中文 编辑:程序博客网 时间:2024/06/13 09:30

Nim游戏先手必败的条件是所有石子异或和为0。然后就和这题一样了。

代码:

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define N 110#define M 32long long Ans;int i,j,k,n,m,c[N],a[M];int main(){    scanf("%d",&n);    for(i=1;i<=n;i++)scanf("%d",&c[i]);    sort(c+1,c+n+1);    for(i=n;i;i--){        k=c[i];        for(j=M-1;j;j--)        if((c[i]>>j-1)&1)        if(!a[j]){            a[j]=c[i];            break;        }else c[i]^=a[j];        if(!c[i])Ans+=k;    }    printf("%lld\n",Ans);    return 0;}
原创粉丝点击