讀題真的費了點時間,但是讀懂後就發現並不是那麼困難。
這道題很簡單明瞭。。題幹裡說的什麼集合看起來很高階。。但是你仔細拆解一下就會發現。。這個就是樹狀陣列。。
問題就是 n m ,代表 n 個元素,m個詢問。每次詢問有兩種
1.詢問區間 a b 之間 lowbit( i ) 之和
2.詢問 把 x 加入樹狀陣列需要迴圈幾次 add。。。
總之。。詢問 2 是最好搞的。。不會超時。。暴力求解
但是 1 有點問題了。
n 的範圍太大了。。直接跑迴圈即便 o(n) 也會炸。。
所以我們只能從二進位制角度考慮。。。
lowbit 函式本質 就是 求出某個數二進位制下 末位 1 所在位置表示的十進位制數。。如 lowbit(0110 ) 代表 ( 0010 ) 所以既然知道詢問區間了,我們只需要以計算字首和的方式 用 query( b ) - query( a-1 ) 就可以算出來了。
至於如何去算字首和。。很簡單 從二進位制角度考慮。記得到了相應的位置要乘以相應的 1<< i
以下這串**就是
ll query(ll x)
ll query(ll x)
return ans;
}int main()
else
printf("%lld\n",ans);}}
}return 0;
}
2016ACM ICPC亞洲區大連站 重現賽 A
題目大意 已知有n個人,他們進行了m場比賽,已知其中有x個好人,y個壞人。比賽一定是在好人和壞人之間進行的。問是否能夠把n個人劃分成好人和壞人兩個部分好人和中立人打 中立人變成壞人,壞人和中立人打 中立人變成好人 做的時候開始發現就是乙個二分圖,開始不知道這種方法叫做染色法現在明白了 以下為ac i...
2023年ACM ICPC亞洲區現場賽廣州賽區總結
本來不想提這件事的,後來學姐找我談心時提到這件事,我突然意識到在這件事情上我錯了一次,明明答應的去參加這場比賽,最後臨時決定不去.其實中間有很多很多原因 1 我和tyh,sxk臨時不去主要是廣州太遠,我們身上money不夠,呵呵。別笑我們,你以為我們是高富帥啊,去一趟廣州消費要2個月的生活費,獎學金...
2013ACM ICPC亞洲區南京站現場賽G題
題目大意 乙個n維的系統中隨機選乙個向量 x1,x2,x3,xn 其中0 xi r,且x1 2 x2 2 x3 2 xn 2 r 2。現在給定n,r。求xi的期望。其實是一道很簡單的數學題。首先證明 對於 x1,x2,x3,xn 其中0 xi r,且x1 2 x2 2 x3 2 xn 2 r 2 x...