20190925機房測試 不正常序列

2022-05-26 07:48:07 字數 828 閱讀 8942

我們定義乙個不正常數列

f[1]=1

f[i]=(a*m+b*i+c) mod (1e9+7)

其中,m是指數列 的中位數

如果數列一共有偶數項,那麼我們定義較小的那個為他的中位數

對於給定的a,b,c和n,求數列f[i]之和

一句話題意:實時更新數列並查詢數列中位數

很顯然,我們可以用兩個堆,儲存這個數列的前半部分和後半部分

這兩個堆的堆頂就是中位數了(具體是哪個堆的堆頂要分情況)

但這樣時間複雜度不優秀,優化的方法如下:

在兩個堆之間連乙個陣列,作為「緩衝區」

那麼每次加入新數的時候,有可能只是數字在緩衝區上移動

並不涉及堆的操作,就可以優化時間複雜度

堆可以使用優先佇列實現

**:#include#define mod 1000000007

#define size1 q1.size()

#define size2 q2.size()

#define ll long long

using namespace std;

ll a,b,c,n,mid,ans;

ll f[2000005];

priority_queueq1;//前面一半的數

priority_queue,greater> q2;//後面一半的數

templateinline void read(t &res)

void insert(ll x)

else if(size1考試的時候wa了7個點,因為答案 \(ans\) 並沒有要求取模

毒瘤出題人。。。

20190925機房測試 不正常國家

有乙個長相驚奇的國家.可以猜到,這個國家有n個城市,每個城市之間有且僅有一條通路 可以猜到,這個國家是長在樹上的 可以猜到,首都是1號節點 可以猜到,每個城市管轄他子樹中的所有城市 可以猜到,每個城市有乙個權值a 兩個城市通訊難度為兩城市路徑異或和 可以猜到,乙個城市的繁忙度定義為它所管轄的城市中通...

20190925機房測試 不正常團夥

有n個人站成一行,每個人有乙個魅力值 相同魅力值的人會形成乙個團夥,定義乙個團夥正常當且僅當團夥人數為2 你的任務是回答m個詢問,每次詢問乙個區間 lr 你需要回答這個區間中所有人各自結成團夥後,處於不正常團夥中的人的魅力值之和一句話題意 區間查詢出現次數不為2的所有數字之和 一看到區間查詢出現次數...

串列埠通訊不正常

筆者在 網淘的一塊 轉串列埠模組,才幾元人民幣。看外觀好像質量還不錯,另外傳輸線纜還帶遮蔽。但是拆開模組,發現使用的是繫結的 大約是為了節省生產成本的原因吧,當然繫結 在質量上常規情況下,要比塑料或陶瓷封閉材料的 差。筆者的模組用於arm linux開發,但是經常遇到乙個情況 正常啟動bootloa...