通過式子轉化,考慮貢獻,設bit(x)為x的位數,答案為所有組合的位數-(n-i)*a[i]的位數
後乙個式子可以讀入處理,前乙個式子先排序後用二分找到變化邊界,從大往小遍歷二分,答案只有位數+1或者跟原位數相符。
#includeusingview codenamespace
std;
typedef
long
long
ll;const
int n=2e5+10
;int
a[n];
intbi[n];
intget(int
x)
return
res;
}int
main()
sort(a+1,a+1+n);
reverse(a+1,a+1+n);
for(int i=1;i)
sum+=ll((r-1-i)*(get(a[i])+1)+(n-r+1)*get
(a[i]));
}cout
}
二分 差分 思維
二分 差分 思維 當猜了乙個數 x 總共有三種情況 裁判說數大了,那麼裁判說對的取值範圍是 x 裁判說數小了,那麼裁判說對的取值範圍是 x,裁判說數一樣,那麼裁判說對的取值範圍是 x,x 那麼我們只需要求最大有多少個區間重疊了就行了,問題就轉化成了區間的修改,單點查詢,可以考慮差分了。注意題目資料 ...
金牌廚師(二分 差分)
乙個廚師可以做出辣度範圍是 1,n 的菜。現在有 m 個同學,每個同學可以接受的辣度範圍是 l i,r i 廚師每天會選擇一部分同學,做出讓他們都滿意的菜。滿意程度定義為選出的同學的人數 k 和能讓這部分同學都接受的菜的種類數 x 這裡理解為一種辣度對應一種菜 兩者中的最小值,即 min k,x 求...
中位數(DP 二分)
單點時限 10.0 sec 記憶體限制 256 mb 你的地圖是一張白紙,所以即使想決定目的地,也不知道路在 qq 小方最近在自學圖論。他突然想出了乙個有趣的問題 一張由 n 個點,m 條邊構成的有向無環圖。每個點有點權 ai。qq 小方想知道所有起點為 1 終點為 n 的路徑中最大的中位數是多少。...