體面背景好評
*關於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 兩個城市通訊難度為兩城市路徑異或和 可以猜到,乙個城市的繁忙度定義為它所管轄的城市中通...