bzoj 3105 线性基
2017-03-03 21:33
127 查看
就正常的nim游戏来说,异或和为0先手必败,所以对于第一次取只要构造出没有异或和为0的子集的线性基就行了。
#include<cstdio> #include<iostream> #include<algorithm> using namespace std; const int maxn = 10005; int n,a[maxn],b[maxn],ins[maxn],cnt; long long res; inline void xor_gauss() { cnt=0; for(int i=n;i>=1;i--) { if(a[i]) res-=b[i]; for(int j=62;~j;j--) if((a[i]>>j)&1){ for(int k=1;k<=n;k++) if(k!=i&&a[k]&&(a[k]>>j)&1) a[k]^=a[i]; break; } } } int main() { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); sort(a+1,a+1+n); for(int i=1;i<=n;i++)b[i]=a[i],res+=b[i]; xor_gauss(); printf("%lld\n",res); return 0; } /* 6 5 5 6 6 5 5 */
相关文章推荐
- [BZOJ3105][CQOI2013]新Nim游戏(线性基+贪心)
- bzoj 3105: [cqoi2013]新Nim游戏 博弈论+贪心(拟阵)+线性基
- BZOJ 3105 [CQOI2013]新Nim游戏 ——线性基
- 【bzoj3105】【cqoi2013】【新Nim游戏】【线性基+贪心】
- BZOJ 3105 新Nim游戏(博弈论+线性基)
- 【BZOJ-2460&3105】元素&新Nim游戏 动态维护线性基 + 贪心
- 【bzoj3105】【cqoi2013】【新Nim游戏】【线性基+贪心】
- BZOJ 3105 线性基 高斯消元
- BZOJ 3105: [cqoi2013]新Nim游戏 [高斯消元XOR 线性基]
- BZOJ 3105 CQOI 2013 新Nim游戏 && 2460 BeiJing 2011 元素 拟阵+线性基
- [BZOJ3105][cqoi2013]新Nim游戏(贪心+高斯消元求线性基)
- BZOJ 3105 线性基 高斯消元
- bzoj 3105: [cqoi2013]新Nim游戏 (高斯消元求解线性基)
- BZOJ.3105.[CQOI2013]新Nim游戏(线性基 贪心 博弈论)
- bzoj 3105: [cqoi2013]新Nim游戏【线性基】
- 【BZOJ3105】[cqoi2013]新Nim游戏 贪心+线性基
- 【bzoj3105】[cqoi2013]新Nim游戏 高斯消元求线性基
- [高斯消元 线性基 贪心 拟阵] BZOJ 3105 [cqoi2013]新Nim游戏
- [bzoj2844][线性基]albus就是要第一个出场
- bzoj 2844 albus就是要第一个出场 - 线性基