51nod演算法馬拉松32

2021-08-14 06:20:01 字數 2151 閱讀 1353

比賽鏈結

馬拉松是真的難…

應該是我太菜了tnt

同bzoj1534

題解戳這裡

n個有標號的點,其中m個是葉子節點。

問有多少數的形態。

#include

#include

#include

#include

#include

using

namespace

std;

typedef

long

long ll;

const

int n = 1000010;

const

int mod = 1e9 + 7;

int n, m;

ll fac[n], inv[n];

inline ll ksm(ll x, int p)

return ret;

}inline

void prepare()

inline ll c(int n, int m)

inline ll s(int n, int m)

return ret;

} //s(n, m) = 1/m!*sigma(k=0 to m);

int main()

有乙個set的序列,有兩種操作:

1. 在序列[l,r]內每個位置插入乙個數

2. 詢問[l,r]內的數去重以後的第k小

這道題和zjoi2013 k大數查詢很像。

那道題是樹套樹,題解戳這裡。

但是這道題要去重,所以不能這麼做。

標算是bitset優化線段樹,線段樹每個節點套乙個bitset。

具體操作見**。

(這還是我第一次寫bitset…qwq)

#include

#include

#include

#include

#include

#include

#include

#define mid (l+r>>1)

#define lc o<<1

#define rc o<<1|1

using

namespace

std;

typedef

long

long ll;

inline ll read()

inline

void writeabs(ll a)

inline

void write(ll a)

const

int n = 10001, m = 65540;

int n, q, tot;

bool vis[m<<1];//vis[i]=1表示i號節點被完全覆蓋過

bitset

t[m<<1], tag[m<<1], tmp;

inline

void ask(int o, int l, int r, int x, int y)

if(vis[o]) tmp |= tag[o];

if(y <= mid) ask(lc, l, mid, x, y);

else

if(x > mid) ask(rc, mid+1, r, x, y);

else ask(lc, l, mid, x, mid), ask(rc, mid+1, r, mid+1, y);

}inline

void insert(int o, int l, int r, int x, int y, int p)

if(y <= mid) insert(lc, l, mid, x, y, p);

else

if(x > mid) insert(rc, mid+1, r, x, y, p);

else insert(lc, l, mid, x, mid, p), insert(rc, mid+1, r, mid+1, y, p);

}int main()

int l = 0, r = 10000;

while(l < r)

}write(l), puts("");}}

return

0;}

def都還沒看過= =先留坑,以後哪天突發奇想做了再寫。

51nod演算法馬拉松15

智力徹底沒有了。看來再也拿不到獎金了qaq。a b君的遊戲 因為資料是9b1l,所以我們可以hash試一下資料。include include include include define rep i,s,t for int i s i t i define dwn i,s,t for int i ...

51nod演算法馬拉松13

a 取餘最長路 不難發現路徑可以拆成三條線段,只要知道兩個轉折點的位置就能計算出答案。設sum i,l,r 表示第i行從l到r元素的和,則答案可以表示為sum 1,1,x sum 2,x,y sum 3,y,n p。字首和一下轉化成 s3 n s3 y 1 s2 y s1 x s2 x 1 p,從小...

51nod 演算法馬拉松18 總結

第一次打馬拉松。a 一看題。什麼鬼。n 4竟然是無解,第乙個點給了乙個n 5的,好像是構造的挺有規律的樣子。那就偶數無解,奇數照著他的構造方法寫一發吧。怎麼a了?不管了。既然結束了還是要回來好好想一下是什麼情況的。偶數肯定是無解的,因為一共有n n 1 2 條邊,那麼每種顏色的邊出現次數相等的話,就...