省選測試35

2022-06-14 13:48:09 字數 2351 閱讀 8451

凱爹ak了呀

題目大意 : 詢問結尾在l到r內的字首的兩兩間的最長公共字尾是多少

show code

#include #include #include using namespace std;

const int n = 1e5 + 5;

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

char s[n];

sets[n*2];

set::iterator it1, it2;

vector g[n];

vector < pair> a[n], q[n];

int n, m, len[n*2], fa[n*2], ch[n*2][2], ans[n], t[n];

void add(int x, int w)

int ask(int x, int w = 0)

int main()

s[now].insert(i);

}for (int i = n; i >= 1; --i)

for (it1 = s[x].begin(); it1 != s[x].end(); ++it1)

s[fa[x]].insert(*it1);}}

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

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

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

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

return 0;

}

題目大意 : 讓每個點成為到所有節點距離和最小的節點最少需要斷開並連上幾條邊(改變後圖還是一顆樹0)

show code

#include #include using namespace std;

const int n = 1e6 + 5;

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

struct edge e[n*2];

int h[n], edc;

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

}int n, sz[n], rt, mi, a[n], cnt, sum, tmp, k, ans[n];

void getrt(int x, int fa)

mx = max(mx, n - sz[x]);

if (mx < mi) mi = mx, rt = x;

}void getsz(int x, int fa)

void dfs(int x, int fa)

int main()

getrt(1, 0); getsz(rt, 0);

for (int i = h[rt]; i; i = e[i].n)

a[++cnt] = sz[e[i].t];

sort(a + 1, a + cnt + 1);

for (int i = cnt; i >= 1; --i)

for (int i = h[rt]; i; i = e[i].n)

tmp = sum - max(sz[e[i].t], a[cnt-k+1]), dfs(e[i].t, rt);

k--; ans[rt] = -k;

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

printf("%d\n", k + ans[i]);

return 0;

}

題目大意 : 給乙個排列,需要生成乙個合法的括號序列,使得左括號的位置i向p[i]連邊後,圖中所有點的度數都是1

show code

#include using namespace std;

const int n = 105;

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

bool v[n];

char c[n];

int n, t[n], tot, p[n];

bool judge()

return !tp;

}int main()

for (int s = 1 << tot; s >= 1; --s)

if (judge()) break;

}printf("%s\n", c + 1);

return 0;

}

省選模擬35 題解

考慮現在要通過藍邊刪掉紅邊。其實等價於要找出有哪些紅邊,滿足恰好只有乙個端點在藍邊的兒子方向子樹中。考慮對藍樹跑出乙個 dfs 序來,那麼問題轉化為恰好乙個端點在給定區間中。這像是乙個二維偏序問題。考慮以線段樹下標為其中的第一維,第二維進行排序處理。然後用乙個 set 就可以簡單維護了,但是這樣做的...

省選測試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 有一...