input
第一行包含乙個正整數n,表示礦石的種類數。
接下來 n行,每行兩個正整數numberi 和 magici,表示這種礦石的元素序號
和魔力值。
output
僅包一行,乙個整數:最大的魔力值
sample input
3 1 10
2 20
3 30
sample output
50hint
由於有「魔法抵消」這一事實,每一種礦石最多使用一塊。
如果使用全部三種礦石,由於三者的元素序號異或起來:1 xor 2 xor 3 = 0 ,
則會發生魔法抵消,得不到法杖。
可以發現,最佳方案是選擇後兩種礦石,法力為 20+30=50。
對於全部的資料:n ≤ 1000,numberi ≤ 10^18
,magici ≤ 10^4
source
day2
在異或求最值的時候線性基能得到良好的應用,感覺非常神奇。
這個題目就是相同值的元素會相互抵消,那麼就可以將val從大到小排序,優先選取得到最優解。
#include
using
namespace
std;
#define ll long long int
const
int maxn=1e3+23;
struct nodea[maxn];
ll b[65];
bool cmp(node a,node b)
int n;
int main()
sort(a+1,a+1+n,cmp);
int ans=0;
for(int i=1;i<=n;i++)}}
}printf("%d",ans);
return
0;}
BZOJ 2460 元素 線性基 貪心
線性基是一種特殊的基,它通常會在異或運算中出現,它的意義是 通過原集合s的某乙個最小子集s1使得s1內元素相互異或得到的值域與原集合s相互異或得到的值域相同。性質 線性基能相互異或得到原集合的所有相互異或得到的值。線性基是滿足性質1的最小的集合 線性基沒有異或和為0的子集。題意 n個礦石,第i個礦石...
BZOJ 2460 元素(貪心 線性基)
description 相傳,在遠古時期,位於西方大陸的ma gicl and 上,人們已經掌握了用魔法礦石煉製法杖的技術。那時人們就認識到,乙個法杖的法力取決於使用的礦石。一般地,礦石越多則法力越強,但物極必反 有時,人們為了獲取更強的法力而使用了很多礦石,卻在煉製過程中發現魔法礦石全部消失了,從...
BZOJ2460 元素(貪心,線性基)
bzoj 第一行包含乙個正整數n,表示礦石的種類數。接下來 n行,每行兩個正整數numberi 和 magici,表示這種礦石的元素序號 和魔力值。僅包一行,乙個整數 最大的魔力值 3 1 10 2 20 3 30 由於有 魔法抵消 這一事實,每一種礦石最多使用一塊。如果使用全部三種礦石,由於三者的...