牛客練習賽60 A 大吉大利(位運算)

2021-10-04 12:31:29 字數 1288 閱讀 7113

給定 n

nn 個整數,依次為 a1,

a2,.

..,a

na_1,a_2,...,a_n

a1​,a2

​,..

.,an

​求∑i=1

n∑j=

1n(a

i&aj

)\sum_^n\sum_^n(a_i\&a_j)

∑i=1n​

∑j=1

n​(a

i​&a

j​)katex parse error: expected 'eof', got '&' at position 4: 「\&&̲」 是二進位制的與運算子。

第一行乙個整數 n.n.

n.第二行 n

nn 個整數 a

ia_i

ai​.

乙個整數表示上述求和式的答案.

示例1輸入

51 2 3 4 5

輸出&

\&& 的規則是同 1

11 為 1

11 。

以樣例為例,將每個數字轉換成二進位制,

001

010011

100101

可以發現,每個數字的1都所在的列的1進行了一遍「&」運算

比如以第三行為例:10

101則第乙個1與所有的1進行「&」運算完後得到3,第二個與所有的1進行「&」運算後再得到3…

這時候,規律已經很明顯了,當行數字所有的「&」運算結果加起來就是1的數目的平方!

就是 4∗2

2+4∗

21+9

∗20=

334 * 2^2 + 4 * 2^1 + 9 * 2^0=33

4∗22+4

∗21+

9∗20

=33

const

int n =

1e5+10;

ll n, m, x;

ll a[n]

;ll maxn, cnt, ans;

ll max

(ll a, ll b)

intmain()

maxn =

max(cnt, maxn);}

ans =0;

rep(i,

1, maxn)

ans +

=(a[i]

* a[i]

)<<

(i -1)

;pld

(ans)

;return0;

}

牛客練習賽60 A 大吉大利 思維

傳送門 a 大吉大利.題目描述 給定n個整數,依次為a1 a2 an。求 i 1n j 1n ai a j sum n sum n a i a j i 1n j 1 n a i a j 是二進位制的與運算子。輸入描述 第一行乙個整數n.第二行nn個整數 ai.輸出描述 乙個整數表示上述求和式的答案....

牛客練習賽60 A 大吉大利 簽到 位運算

題目鏈結 click 時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 題目描述 給定n個整數,依次為a1,a2,an。求 i 1n j 1n ai a j sum n sum n a i a j i 1 n j ...

牛客練習賽60補題

思路 考慮位運算 的特性 只有兩者都為1才會對答案有貢獻 且 對答案貢獻的值為 1 k 其中k是當前1所在二進位制下的位數 所以考慮預處理每乙個位的1出現的次數 其中對每一位都會遍歷n n次 所以每一位對答案的貢獻就是 a i a i 1 i a i 為當前位置1的個數 include using ...