2023年10月20日提高組 T1 奇怪的佇列

2021-08-29 12:18:54 字數 1175 閱讀 1900

給定每個人的身高和它們已知一側身高比他高的人數,求合法的組合中字典序最小的一組

因為要字典序最小所以先按身高排序,然後再判斷有沒有合法的情況,有的話,優先填靠左邊的

樹狀陣列+二分判斷是否還可以填,這樣是o(n

log2

n)

o(nlog^2n)

o(nlog

2n)可以用權值線段樹或spl

ay

splay

spla

y達到o(n

logn

)o(nlogn)

o(nlog

n)

#include

#include

using

namespace std;

int c[

100010

],n,x,y,ans[

100010];

inline

intread()

inline

void

write

(register

int x)

inline

void

add(

register

int x)

inline

intask

(register

int x)

struct nodea[

100010];

inline

bool

cmp(node x,node y)

bool b[

100010];

inline

intbf

(register

int x)

//查詢位置

return b[l]?0

:l;}

signed

main()

;sort

(a+1

,a+1

+n,cmp)

;for

(register

int i=

1;i<=n;i++

)for

(register

int i=

1;i<=n;

putchar(32

),i++

)write

(ans[i]);

}

2023年10月29日提高組 T1 A

n nn個球,m mm個盤,盤子不能空,求本質上不相同的方案數 首先深搜 include using namespace std int n,m,ans inline void dfs register int dep,register int sy,register int last 分完了,統計...

2023年10月30日提高組 T1 A

求樹上聯通快中最大值與最小值之差為k kk的方案數 設最大值與最小值之差為xxx x xx正好為k kk的方案數 x k x leq k x k 的方案數 x x k的方案數 於是我們就可以樹形dpdp dp啦fi fs on 1 f i prod f 1 fi fson 1 include def...

2023年10月31日提高組 T1 A

求n nn的排列了交換為公升序的最小交換次數的期望 兩種思路 暴力打表找規律 動態規劃 第一種只需要打乙個bfs bfsbf s hash hash hash include include define p 10000007 using namespace std int n,ans struct...