省選測試36

2022-06-18 13:06:14 字數 1597 閱讀 7201

t3沒刪除錯,不然有30。後來發現快讀寫錯了,80分沒了啊

題目大意 : 給出一顆關係樹,每人有乙個能力值,每人獲得的獎金是子樹內能力值的中位數(\(\frac\)),詢問每個人的能力改為1e5之後需要發多少獎金

show code

#include using namespace std;

typedef long long ll;

const int n = 2e5 + 5;

int read(int x = 0, int f = 1, char c = getchar())

struct edge e[n];

int h[n], edc;

void add(int x, int y) ; h[x] = edc;

}int n, a[n], fa[n], rt[n], trc, m[n], d[n];

ll sum, ans[n];

struct tree t[n*21];

void insert(int &rt, int l, int r, int x)

void marge(int &x, int y)

int find(int rt, int l, int r, int x)

struct tarray

ll ask(int x, int w = 0)

}t;void dfs(int x)

int main()

dfs(1);

for (int i = 1; i <= n; ++i)

printf("%lld\n", ans[i]);

return 0;

}

題目大意 :

show code

題目大意 : 給出乙個不可重集b,和乙個排列,讓求出比b字典序小的不可重集a的方案數,這裡的字典序比較順序是先比較第p[1]小的,然後比第p[2]小的……

show code

#include #include #include using namespace std;

const int n = 2e5 + 5, m = 998244353;

int read(int x = 0, int f = 1, char c = getchar())

sets;

int n, m, a[n], p[n], fac[n], inv[n], ans, sum;

int pow(int a, int k, int ans = 1)

void init()

int c(int n, int m)

int main()

else

ans = 1ll * c(a[y] - a[x] - 1, y - x - 1) * c(a[z] - a[y] - 1, z - y - 1) % m * ans % m;

}printf("%d\n", sum);

return 0;

}

省選模擬36

發現最優策略是唯一的,也就是說,假如要將n個盤子從1移動到3,那麼必須先將n 1個盤子移動到2。然後可以發現這個東西每走一步所需要的時間是確定的,所以只需要確定當前的狀態。一直遞迴下去即可。根據題解的意思,這個東西的答案大約是和n同級的。由於某種神奇的原因,大約可以認為 f 函式是隨機的,所以對於兩...

省選測試21

設 f i 為上一次參加的比賽是第 i 場的最大愉悅值 則 f i max f i f j frac a i j 對於隨機的資料,把列舉的範圍卡到 3000 即可 容易發現,如果沒有 a j leq a i 的限制,那麼就是乙個裸的斜率優化 dp 把 f i frac frac 看做 y 把 i 看...

省選測試9

這個名次已經是倒數了 感覺整場考試不是很在狀態,正解想不到,暴力分也沒有打滿 其實前兩道題仔細推一下還是能想出來的 t1 2 sat 有一段時間沒有打了 優化建圖的方式和之前的某道題挺像的,但是當時那道題沒改 這次算是補了乙個鍋 t2 的資料範圍折半列舉也不難想,實現時注意一下細節就行了 t3 有一...