2016ACM ICPC亞洲區大連站 重現賽 E

2021-09-01 05:15:22 字數 705 閱讀 1595

讀題真的費了點時間,但是讀懂後就發現並不是那麼困難。

這道題很簡單明瞭。。題幹裡說的什麼集合看起來很高階。。但是你仔細拆解一下就會發現。。這個就是樹狀陣列。。

問題就是 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...