題解 NOIP模擬 不正常全家桶

2022-02-19 18:44:57 字數 1643 閱讀 8480

體面背景好評

*關於ssw02,他炸了 *

主要思路

50分做法

開桶暴力,統計即可。

60分做法

主席樹加暴力

100分做法

由50分做法可得,莫隊離線一下就可以了。(這裡順便借zyc學長的**優化了一下ssw02自己的莫隊板子)

由60分做法可得,主席樹記錄上乙個位置即可。

線段樹做法,也是記錄上乙個位置。(區間染色也就這幾種方法了)

#includeusing namespace std ;

#define ll long long

const int maxn = 100005 ;

inline int read()

while(g>='0'&&g<='9')s=s*10+g-'0',g=getchar() ;return w*s ;

}struct segt[ maxn ];

int n , m , block , a[ maxn ] , pos[ maxn ] , num[ maxn ] ;

ll tot = 0 , ans[ maxn ] ;

inline bool cmp( seg x , seg y )

inline void updata( int x , int opt )

++num[ a[ x ] ] ;

if( num[ a[ x ] ] > 3 ) tot += a[ x ];

else if( num[ a[ x ] ] == 3 ) tot += a[ x ]*3 ;

else if( num[ a[ x ] ] == 2 ) tot -= a[ x ] ;

else tot += a[ x ];

}void mo()

}int main()

作為乙個oier,要時刻保持對出題人的尊敬,尤其是本校金牌學長出的題。

重鏈剖分+trie樹+啟發式合併( sxk , std )

trie樹+無刪除啟發式合併( zyc )

樹剖+trie樹+啟發式合併(其實和第一種差不多)

毒瘤出題人完美卡了所有平衡樹。(最後有hzy卡時莽了過去)

求中位數,用雙堆吧。常數小了不止乙個級別。

#includeusing namespace std ;

#define ll long long

const int maxn = 1000005 , mod = 1e9+7 ;

inline ll read()

ll ans = 0 ;

ll a[ maxn ] , n , a , b , c ;

priority_queuema,mi ;

int deal( int n )

void insert( int x )

while( mi.size()-1 > ma.size() )

}int main()

cout<}

串列埠通訊不正常

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

20190925機房測試 不正常序列

我們定義乙個不正常數列 f 1 1 f i a m b i c mod 1e9 7 其中,m是指數列 的中位數 如果數列一共有偶數項,那麼我們定義較小的那個為他的中位數 對於給定的a,b,c和n,求數列f i 之和一句話題意 實時更新數列並查詢數列中位數 很顯然,我們可以用兩個堆,儲存這個數列的前半...

20190925機房測試 不正常國家

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