求助站外题
  • 板块灌水区
  • 楼主aryn
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/1/25 21:32
  • 上次更新2023/10/28 10:57:15
查看原帖
求助站外题
409226
aryn楼主2022/1/25 21:32

AtCoder Beginner Contest 236 F题,用线性基做但只对了四个点

#include<bits/stdc++.h>
#define ll long long
using namespace std;
struct node{
	int id,num;
}a[1<<16];
int n;
int d[55*3];
ll sum=0;
bool cmp(node a,node b){
	return a.num<b.num;
}
bool add(int x){
	for(int i=62;i>=0;i--){
		if(x&(1ll<<i)){
			if(d[i])x^=d[i];
			else{
				d[i]=x;
				return 1;
			}
		}
	}
	return 0;
}
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n*n-1;i++)scanf("%d",&a[i].num),a[i].id=i;
    sort(a+1,a+n*n,cmp);
	for(int i=1;i<=n*n-1;i++){
    	if(add(a[i].id)){
    		sum+=a[i].num;
		}
	}
	printf("%lld",sum);
	return 0;
}

有dalao帮忙找一下问题吗,谢谢

2022/1/25 21:32
加载中...