2020牛客寒假演算法基礎集訓營2 I題

2021-10-02 15:17:30 字數 1111 閱讀 7792

題目描述

在無垠的宇宙中,有 n 個星球,第 i 個星球有權值 vi。

由於星球之間距離極遠,因此想在有限的時間內在星際間旅行,就必須要在星球間建立傳送通道。

任意兩個星球之間均可以建立傳送通道,不過花費並不一樣。第 i 個星球與第 j 個星球的之間建立傳送通道的花費是 lowbit(vi⊕vj),

其中 ⊕ 為二進位制異或,而 lowbit(x) 為 x 二進位制最低位 1 對應的值。

牛牛想在這 n 個星球間穿梭,於是――你需要告訴 牛牛,要使這 n 個星球相互可達,需要的花費最少是多少。

題目的思路就是找到乙個最小的二進位制位置,這個位置的二進位制位值是1,並且這個位置在n個星球權值的二進位制位值裡面也存在為1,並且存在為0;

神奇的異或運算就解決了;

#include

#define ll long long

#define pa pair

#define lson k<<1

#define rson k<<1|1

//ios::sync_with_stdio(false);

#define inf 0x3f3f3f3f

using

namespace std;

const

int n=

200100

;const

int m=

1000100

;const ll mod=

100000007

;int a[n]

;set<

int>se;

ll ans;

intmain()

int s1=

0,s2=

0x7fffffff

;for

(int i=

1;i<=n;i++

) s2^

=s1;

//找出二進位制位有1但不都為1的位置

int t=se.

size()

-1;for

(int i=

0;i<=

30;i++)}

cout

}

2020牛客寒假演算法基礎集訓營

長期更新,補完為止 2 g 判正誤 題意 t組資料。判斷a d b e c f是否等於g。1e9 a,b,c,g 1e9,0 d,e,f 1e9。保證不會出現指數和底數同為 0 的情況。思路 硬算會tle或mle。快速冪取模,為了增加過題概率,多取幾個模數判斷。includeusing namesp...

2020牛客寒假演算法基礎集訓營1

找規律,推公式 三角形個數為2 m n m n m 1 n 1 2 m n mn m 1 n 1 2 m n mn m 1 n 1 include include include include using namespace std typedef long long ll const int m...

2020牛客寒假演算法基礎集訓營1

h題 突然發現h題可以用好多種方法做的。方法一 雙指標,維護乙個修改次數小於等於k的區間 include using namespace std typedef long long ll const int mod 1e9 7 const int n 1e5 5 const int inf 0x3f...