線性基 P4570 BJWC2011 元素

2022-05-03 12:45:22 字數 861 閱讀 2554

線性基 p4570 [bjwc2011]元素

線性基裸題,雖然說是比較裸的題目,但是呢,我才開始學這個,還不知道線性基到底是做什麼的,只知道它和異或有關係,可以求出乙個序列的異或值最大,異或值最小和異或值第k大。

這個題目呢有一點點貪心,首先要貪心的考慮取最大值,然後判斷能不能放進去,後面的數字能放進去就放進去,不能放進去就算了,因為不能放進去,如果硬要放進去,那麼就會把前面的刪掉,這樣是不對的。

#include #define inf 0x3f3f3f3f

#define inf64 0x3f3f3f3f3f3f3f3f

using namespace std;

typedef long long ll;

const int maxn = 1e5+10;

long long d[maxn],num[maxn],w[maxn],ans,flag[maxn];

void add(int x) else }}

ans += maxs;

flag[pos] = x;

}int p[maxn];

bool cmp(int i,int j)

int main()

sort(p+1,p+1+n,cmp);

for(int i=1;i<=n;i++) add(p[i]);

printf("%lld\n",ans);

return 0;}/*

42 1

4 97 2

3 44

2 94 8

7 73 6

2 10

4 100

7 111

3 11

*/

洛谷 P4570 BJWC2011 元素 線性基

題目描述 相傳,在遠古時期,位於西方大陸的 magic land 上,人們已經掌握了用魔法礦石煉製法杖的技術。那時人們就認識到,乙個法杖的法力取決於使用的礦石。例如,使用兩個同樣的礦石必將發生 魔法抵消 因為這兩種礦石的元素序號相同,異或起來為零。並且人們有了測定魔力的有效途徑,已經知道了 合成出來...

P4570 BJWC2011 元素 線性基上貪心

n個物品,有編號和價值兩個屬性,如果多個物品之間編號異或為0,那麼他們就會消失。求乙個子集,使得總價值最大。根據線性基的性質 假設我有3個物品的編號異或為0,那麼這三個物品無論以什麼樣的順序插入線性基,最後乙個一定是無法插入的,那麼有個顯而易見的貪心策略 把物品按價值降序排序,如果乙個物品能插入線性...

P4570 BJWC2011 元素題解

相傳,在遠古時期,位於西方大陸的 magic land 上,人們已經掌握了用魔法礦石煉製法杖的技術。那時人們就認識到,乙個法杖的法力取決於使用的礦石。例如,使用兩個同樣的礦石必將發生 魔法抵消 因為這兩種礦石的元素序號相同,異或起來為零。並且人們有了測定魔力的有效途徑,已經知道了 合成出來的法杖的魔...