給定 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就是 4∗2010011
100101
可以發現,每個數字的1都所在的列的1進行了一遍「&」運算
比如以第三行為例:10
101則第乙個1與所有的1進行「&」運算完後得到3,第二個與所有的1進行「&」運算後再得到3…
這時候,規律已經很明顯了,當行數字所有的「&」運算結果加起來就是1的數目的平方!
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 ...