BZOJ3105 新Nim遊戲 【擬陣】
阿新 • • 發佈:2018-10-06
code include max ans 線性 pan bsp spa tin
題目分析:
我不知道啥是擬陣啊,但有大佬說線性基相關的都是擬陣,所以直接貪心做了。
題目代碼:
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 const int maxn = 120; 5 6 int n; 7 int a[maxn]; 8 int bas[maxn]; 9 10 void read(){ 11 scanf("%d",&n); 12 for(int i=1;i<=n;i++) scanf("%d",&a[i]); 13 sort(a+1,a+n+1); 14 } 15 16 void work(){ 17 long long ans = 0; 18 for(int i=n;i>=1;i--){ 19 int dt = a[i]; 20 for(int j=30;j>=0;j--){ 21 if(!(a[i] & (1<<j)))continue; 22 if(bas[j] == 0){bas[j] = a[i];break;} 23 else a[i] ^= bas[j]; 24 }25 if(a[i] == 0) ans += dt; 26 } 27 printf("%lld\n",ans); 28 } 29 30 int main(){ 31 read(); 32 work(); 33 return 0; 34 }
BZOJ3105 新Nim遊戲 【擬陣】