校內模擬 play in array(塊狀鍊錶)

2021-10-05 03:11:47 字數 1673 閱讀 9422

簡要題意:

乙個序列,請你支援

將 a

ra_r

ar​ 挪到 al−

1a_

al−1

​ 和 a

la_l

al​ 之間,重新標號。

詢問在當前序列的第 l

ll 到第 r

rr 個位置,k

kk 出現了多少次。

塊鏈裸題,寫就完事,好寫的一b。

順便,std::list::size() 這個函式差點又把我坑慘了。

至於到底問題在**:here

**:

#include

#define ll long long

#define re register

#define cs const

namespace io

template

<

typename t>t get_integer()

inline

intgi()

char obuf[

20000007],

*oh=obuf,ch[23]

;template

<

typename t>

void

print

(t a,

char c)

struct obuf_flusher

}flusher;

}using

namespace io;

using std::cerr;

using std::cout;

cs int n=

1e5+7;

int n,m,a[n]

;struct block};

std::list bl;

typedef std::list

::iterator btr;

typedef std::deque<

int>

::iterator itr;

int bct,bsz;

void

build()

interase

(size_t p)

else p-

=t->l.

size()

;assert(0

);return-1

;}void

ins(size_t p,

int vl)

else p-

=t->l.

size()

;assert(0

);}int

query

(int p,

int vl)

else

p-=t->l.

size()

,res+

=t->sm[vl]

;return res;

}void

merge

(btr t)

void

split

(btr t)

}void

maintain()

void

main()

case2:

}}}inline

void

file()

signed

main()

校內模擬 鎖

沒有標籤是因為我真的不知道這算什麼型別 這題我說不來大意你們還是看題面描述吧 小z住的房子一共有n個人,他們每人有乙個重要度。房子的門上可以裝若干把鎖。假設共有k把鎖,命名為1到k。每把鎖有一種對應的鑰匙,也用1到k表示。鑰匙可以複製若干份並發給任意多個居民。每個人都可以持有若干鑰匙,可以不持有鑰匙...

校內模擬 assignment(DP)

題面見校內oj4693 考慮預處理f k i j f k i j f k i j 表示最長的一段不超過k kk的時候,將長度為i ii的序列分為j jj段的方案數。在k kk相同的狀態之間轉移,顯然有f i j f i 1 j f i 1 j 1 f i k 1 j 1 f i j f i 1 j ...

2019 10 03 校內模擬

內網傳送門 很明顯的乙個網路流。轉換一下題意,相當於求保留航線的最大值。所以我們把邊權取負跑最小費用流。有乙個坑點,就是我們只需要費用最小,不要求流量最大,所以不應該用最小費用最大流。有兩個解決辦法 用最小費用可行流。連 i,t,1,0 i,t,1,0 i,t,1 0 的邊,表示不選 i ii 連出...