bzoj2460: [BeiJing2011]元素

mac2022-07-05  31

题目链接

bzoj2460: [BeiJing2011]元素

题解

贪心维护线性基.. 直接(1 << x)会爆int,很惨

代码

#include<cstdio> #include<iostream> #include<algorithm> #define LL long long LL read() { LL x = 0,f = 1; char c = getchar(); while(c < '0' || c >'9')c = getchar(); while(c <= '9' && c >= '0')x = x * 10 + c - '0',c = getchar(); return x; } struct node { LL a;int b; bool operator < (const node &x)const { return b > x.b; } } a[1007]; int b[67]; LL bin[67]; int main() { bin[0] = 1;for(int i = 1;i <= 63;++ i) bin[i] = bin[i - 1] << 1; int n = read(); int ans = 0; for(int i = 1;i <= n;++ i) a[i].a = read(),a[i].b = read(); std::sort(a + 1,a + n +1); for(int i = 1;i <= n;++ i) { for(LL j = 63;j >= 0;-- j) { if(a[i].a & bin[j]) { if(!b[j]) { b[j] = i;break;} else a[i].a ^= a[b[j]].a; } } if(a[i].a) ans += a[i].b; } printf("%d\n",ans); return 0; }

转载于:https://www.cnblogs.com/sssy/p/9201338.html

相关资源:25个经典网站源代码
最新回复(0)