nowcoder 218399 小G的LY數對

2021-10-22 07:43:22 字數 930 閱讀 7976

——>點我跳轉<——

有兩個陣列,要你各選乙個數,使它們異或的值在二進位制中恰好有兩位是 1。

問你有多少種選法。

我們看到異或,考慮從位數處理。

看到只要兩位不同,我們可以考慮用這乙個方法(類似折半?)。

把兩邊每個數對於每一位取反得到的數互相匹配,看有多少個相同的且在兩邊的。

那直接匹配相同我們可以用雜湊表來實現。

那接著我們就會發現乙個問題,就是可以能兩個數取反的位置都是相同的,然後它們這樣相同了,那它不能算,而我們會算上。

那我們考慮容斥,把這種情況減去。

因為取反的是同一位,那再取反就說明等於沒取反,那我們就只用找兩邊有多少對相同的,把答案減去這個個數 ×

30\times 30

×30 即可。

要乘 30

3030

是因為每一位都可以這樣,就每對有三十次要減去。

然後就好了。

#include

#include

#define mo 1000007

#define ll long long

using

namespace std;

struct hash e[

3000007];

int le[

3000007

], kk;

ll n, m, a[

500001

], b[

500001];

ll ans;

void

hash_push

(int now)

e[++kk]

=(hash)

; le[pl]

= kk;

}ll hash_ask

(ll now)

intmain()

nowcoder 218398 小G的約數

點我跳轉 定義 f n 是 n 的約數的和,然後 g n 則是 1 f n 的和。然後問你 g g n 是多少。首先,我們會想到,暴力算是不行的。然後我們考慮優化算 g n g n g n 怎麼弄。我們先看約數有什麼特別的地方,那有約數,又有字首和,那如果對於乙個數 x xx,它會是哪些數的因子呢?...

nowcoder 90 L 用來作弊的藥水

題目描述 在乙個風雨交加的夜晚,來自異世界的不願透露姓名的tmk同學獲得了兩種超強藥水a b。根據說明書,tmk知道了這兩種藥水的作用 1 藥水a能使人的生命值提高,每飲用1個單位能使他生命值變成原來的x倍,即每飲用p個單位能使他的生命值變成原來的x p x的p次方 倍。2 藥水b能使人的能量值提高...

小L的占卜

小l的占卜 題目描述 小x的妹妹小l是一名 國的占卜師,她平日的工作就是為x國進行占卜。x國的占卜殿中有一條長度為 nnn 公尺的走廊,先人在走廊的每一公尺都放置了一座神龕,第 iii 座神龕能夠產生 aia iai 點靈力。相同型別的神龕產生的靈力是相同的,不同型別的神龕產生的靈力是不同的,也就是...