G66 线性基+贪心法 P4301 [CQOI2013] 新Nim游戏

视频链接:G66 线性基+贪心法 P4301 [CQOI2013] 新Nim游戏_哔哩哔哩_bilibili

 

 

G58 尼姆(Nim)游戏 - 董晓 - 博客园 (cnblogs.com)

P4301 [CQOI2013] 新Nim游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

复制代码
// 线性基 O(63*n)
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;

#define LL long long
const LL N=105;
LL n,m;
LL a[N],p[64],ans;

void insert(LL x){
  LL y=x;
  for(int i=63;i>=0;--i){
    if(x>>i&1){  //x第i位为1
      if(!p[i]){ //不存在则加入
        p[i]=x; break;
      }
      x^=p[i];   //存在则异或
    }
  }
  //累计不能构造线性基的数
  if(x==0) ans+=y;
}
int main(){
  cin>>n;
  for(int i=0;i<n;++i) cin>>a[i];
  sort(a,a+n,greater<LL>()); //降序
  for(int i=0;i<n;++i) insert(a[i]);
  cout<<ans<<endl;
}
复制代码

 

posted @   董晓  阅读(396)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2022-07-11 D30 基环树 P5022 [NOIP2018 提高组] 旅行
点击右上角即可分享
微信分享提示