題目大意


分析
因為
n
?
m
n*m
n?m超過了
1
e
10
1e10
1e10,所以針對每個輸入的
x
x
x一個一個找并不現實,
于是想到打表,
然后由于題目里有&這個東西,于是想到數位DP,
然后尋找轉移式,發現
當
d
p
[
i
]
=
1
dp[i]=1
dp[i]=1時,
d
p
[
i
?
(
1
<
<
j
)
]
=
1
(
i
>
=
1
<
<
j
)
dp[i-(1<<j)]=1(i>=1<<j)
dp[i?(1<<j)]=1(i>=1<<j),
于是能寫出如下打表代碼段
for (i=mx;i>=0;i--)
for (j=0;j<20;j++)
if (dp[i]&&(i>>j & 1))
dp[i-(1<<j)]=1;
然后再 O ( 1 ) O(1) O(1)輸出每個 x x x對應的 a n s ans ans即可,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/187526.html
標籤:其他
